{"id":17928513,"url":"https://github.com/hartwork/go-wait-for-it","last_synced_at":"2025-09-18T15:32:58.169Z","repository":{"id":39615412,"uuid":"310387355","full_name":"hartwork/go-wait-for-it","owner":"hartwork","description":":beaver: Wait for service(s) to be available before executing a command.","archived":false,"fork":false,"pushed_at":"2025-08-26T17:15:13.000Z","size":246,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-26T23:57:52.082Z","etag":null,"topics":["agpl","command-line-tool","concurrent","cross-platform","go","golang","network","tcp","wait-for-it"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hartwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-05T18:40:34.000Z","updated_at":"2025-08-26T17:15:10.000Z","dependencies_parsed_at":"2023-02-08T15:46:03.487Z","dependency_job_id":"a5b615fb-785d-43a8-9efe-9e8822d0dd6b","html_url":"https://github.com/hartwork/go-wait-for-it","commit_stats":{"total_commits":114,"total_committers":2,"mean_commits":57.0,"dds":"0.14035087719298245","last_synced_commit":"62d3bde6576e0b283dd427739283127ac7dc55f7"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/hartwork/go-wait-for-it","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgo-wait-for-it","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgo-wait-for-it/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgo-wait-for-it/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgo-wait-for-it/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hartwork","download_url":"https://codeload.github.com/hartwork/go-wait-for-it/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgo-wait-for-it/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275789306,"owners_count":25528712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agpl","command-line-tool","concurrent","cross-platform","go","golang","network","tcp","wait-for-it"],"created_at":"2024-10-28T21:03:38.457Z","updated_at":"2025-09-18T15:32:57.900Z","avatar_url":"https://github.com/hartwork.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub Actions: Build and test](https://github.com/hartwork/go-wait-for-it/workflows/Build%20and%20test/badge.svg)\n![Test coverage](./coverage_badge.png)\n\n\n# go-wait-for-it\n\n## About\n\n**wait-for-it** is a lookalike of\n(the perfectly fine)\nPython [wait-for-it](https://github.com/clarketm/wait-for-it)\nwritten in Go 1.20+.\n\nIt supports waiting for multiple services concurrently by default,\nand has a test coverage of 100%.\nIf you do find bugs, [please file a report](https://github.com/hartwork/go-wait-for-it/issues).\nThank you!\n\n\n## Install and run\n\n```console\n$ go install github.com/hartwork/go-wait-for-it/v2/cmd/wait-for-it@latest\n$ export PATH=\"${PATH}:$(go env GOPATH)/bin\"\n$ wait-for-it --version\nwait-for-it 2.0.0\n```\n\n\n## Build and run\n\n```console\n$ ( cd v2 \u0026\u0026 go build ./cmd/wait-for-it )\n$ ./v2/wait-for-it --version\nwait-for-it 2.0.0\n```\n\n\n## Examples\n\n```console\n$ wait-for-it -t 2 -s :631 -s [::1]:631 -s localhost:631 -s 127.0.0.1:631 -- echo 'CUPS is very available'\n[*] Trying to connect to :631...\n[*] Trying to connect to [::1]:631...\n[*] Trying to connect to localhost:631...\n[*] Trying to connect to 127.0.0.1:631...\n[+] Connected to [::1]:631 after 5.458196ms.\n[+] Connected to 127.0.0.1:631 after 201.653µs.\n[+] Connected to :631 after 158.548µs.\n[+] Connected to localhost:631 after 381.536µs.\n[*] Running command: echo CUPS is very available\nCUPS is very available\n[+] Command succeeded.\n```\n\n\n## Usage\n\n```console\n$ wait-for-it --help\nWait for service(s) to be available before executing a command.\n\nUsage:\n  wait-for-it [flags] [-s|--service [HOST]:PORT]... [--] [COMMAND [ARG ..]]\n\nFlags:\n  -h, --help              help for wait-for-it\n  -q, --quiet             do not output any status messages\n  -s, --service strings   services to test (format '[HOST]:PORT')\n  -t, --timeout uint      timeout in seconds, 0 for no timeout (default 15)\n  -v, --version           version for wait-for-it\n\nwait-for-it is software libre, licensed under the AGPL v3 or later license.\nPlease report bugs at https://github.com/hartwork/go-wait-for-it/issues.  Thank you!\n```\n\n\n## Alternatives\n\n### Go\n\n- [`github.com/alioygur/wait-for`](https://github.com/alioygur/wait-for)\n- [`github.com/hartwork/go-wait-for-it`](https://github.com/hartwork/go-wait-for-it) — the one you are looking at\n- [`github.com/maxcnunes/waitforit`](https://github.com/maxcnunes/waitforit)\n- [`github.com/mjeri/go-wait-for-it`](https://github.com/mjeri/go-wait-for-it)\n\n\n### Python\n\n- [`github.com/clarketm/wait-for-it`](https://github.com/clarketm/wait-for-it)\n  — package `wait-for-it` [on PyPI](https://pypi.org/project/wait-for-it/)\n- [`github.com/David-Lor/python-wait4it`](https://github.com/David-Lor/python-wait4it/)\n  — package `wait4it` [on PyPI](https://pypi.org/project/wait4it/)\n\n\n### Rust\n\n- [`github.com/Etenil/wait-for-rust`](https://github.com/Etenil/wait-for-rust)\n- [`github.com/hartwork/rust-for-it`](https://github.com/hartwork/rust-for-it)\n- [`github.com/ktitaro/wait-for`](https://github.com/ktitaro/wait-for)\n  — package `wait_for` [on crates.io](https://crates.io/crates/wait_for)\n- [`github.com/magiclen/wait-service`](https://github.com/magiclen/wait-service)\n  — package `wait-service` on [crates.io](https://crates.io/crates/wait-service)\n- [`github.com/shenek/wait-for-them`](https://github.com/shenek/wait-for-them)\n  — package `wait-for-them` [on crates.io](https://crates.io/crates/wait-for-them)\n\n\n### Shell\n\n- [`github.com/eficode/wait-for`](https://github.com/eficode/wait-for)\n  — POSIX shell\n- [`github.com/vishnubob/wait-for-it`](https://github.com/vishnubob/wait-for-it)\n  — Bash, package `wait-for-it` [in Debian](https://packages.debian.org/unstable/wait-for-it)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhartwork%2Fgo-wait-for-it","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhartwork%2Fgo-wait-for-it","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhartwork%2Fgo-wait-for-it/lists"}