{"id":24747863,"url":"https://github.com/lvillis/tcping-rs","last_synced_at":"2025-10-10T16:31:29.823Z","repository":{"id":217055608,"uuid":"743011356","full_name":"lvillis/tcping-rs","owner":"lvillis","description":"🛠️ tcping-rs: Rust (rs) TCP Ping (tcping) Utility for Port Reachability.","archived":false,"fork":false,"pushed_at":"2025-09-19T14:27:34.000Z","size":408,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-19T16:31:17.836Z","etag":null,"topics":["cli","ping","rust","tcp","tcping","tcping-rs","tcping-rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lvillis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-14T03:12:31.000Z","updated_at":"2025-09-19T14:27:31.000Z","dependencies_parsed_at":"2024-03-18T03:22:30.470Z","dependency_job_id":"cc2ec5b8-63cd-4177-a037-0b752c051740","html_url":"https://github.com/lvillis/tcping-rs","commit_stats":null,"previous_names":["lvillis/tcping-rs"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/lvillis/tcping-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvillis%2Ftcping-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvillis%2Ftcping-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvillis%2Ftcping-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvillis%2Ftcping-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lvillis","download_url":"https://codeload.github.com/lvillis/tcping-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvillis%2Ftcping-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004706,"owners_count":26083750,"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-10-10T02:00:06.843Z","response_time":62,"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":["cli","ping","rust","tcp","tcping","tcping-rs","tcping-rust"],"created_at":"2025-01-28T05:17:58.060Z","updated_at":"2025-10-10T16:31:29.818Z","avatar_url":"https://github.com/lvillis.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- ─── Language Switch \u0026 ToC (top-right) ─────────────────────────── --\u003e\n\u003cdiv align=\"right\"\u003e\n\n\u003cspan style=\"color:#999;\"\u003e🇺🇸 English\u003c/span\u003e ·\n\u003ca href=\"README.zh-CN.md\"\u003e🇨🇳 中文\u003c/a\u003e \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; Table of Contents ↗️\n\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003e\u003ccode\u003etcping-rs\u003c/code\u003e\u003c/h1\u003e\n\n\u003cp align=center\u003e🛠️ tcping-rs: Rust (rs) TCP Ping (tcping) Utility for Port Reachability.\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Crates.io](https://img.shields.io/crates/v/tcping.svg)](https://crates.io/crates/tcping)\u0026nbsp;\n[![Repo Size](https://img.shields.io/github/repo-size/lvillis/tcping-rs?color=328657)](https://github.com/lvillis/tcping-rs)\u0026nbsp;\n[![CI](https://github.com/lvillis/tcping-rs/actions/workflows/ci.yaml/badge.svg)](https://github.com/lvillis/tcping-rs/actions)\u0026nbsp;\n[![Docker Pulls](https://img.shields.io/docker/pulls/lvillis/tcping?style=flat-square)](https://hub.docker.com/r/lvillis/tcping)\u0026nbsp;\n[![Image Size](https://img.shields.io/docker/image-size/lvillis/tcping/latest?style=flat-square)](https://hub.docker.com/r/lvillis/tcping)\u0026nbsp;\n[![Say Thanks](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](mailto:lvillis@outlook.com?subject=Thanks%20for%20tcping-rs!)\n\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n| Feature                      | Description                                                               |\n|------------------------------|---------------------------------------------------------------------------|\n| **Pure Rust**                | No runtime dependencies, produces a tiny static binary                    |\n| **ICMP-free**                | Works where traditional `ping` is blocked; relies solely on TCP handshake |\n| **Cross-platform**           | Linux, macOS, Windows, *BSD, and any Tier-1 Rust target                   |\n| **Continuous / Burst modes** | `-t` for continuous, `-c` for specific count, plus `-e` early exit        |\n| **Machine-readable output**  | JSON / CSV via `-o`, ideal for scripts \u0026 monitoring                       |\n| **Jitter stats**             | `-j` flag shows latency variance (p95)                                    |\n| **Docker image**             | Multi-arch (`amd64` / `arm64`) for pipelines or Kubernetes Jobs           |\n\n\n## Usage\n\n```bash\ntcping \u003chost:port\u003e [-c count] [-t] [-e] [-j] [-o mode]\n```\n\nWhere:\n\n- `host:port` is the host and port to ping\n- `-c count` specifies the number of times to ping the host (default: 4)\n- `-t` enables continuous pinging\n- `-e` exits immediately after a successful probe\n- `-j` calculates and displays jitter\n- `-o mode` sets the output mode (`normal`, `json`, `csv`)\n- `-h` displays help\n- `-V` displays version\n\n## Example\n\n```bash\n$ tcping github.com:443\n\nResolved address in 0.9340 ms\nProbing 140.82.113.4:443/tcp - Port is open - time=12.7510ms\nProbing 140.82.113.4:443/tcp - Port is open - time=12.4270ms\nProbing 140.82.113.4:443/tcp - Port is open - time=11.4410ms\nProbing 140.82.113.4:443/tcp - Port is open - time=12.7510ms\n\n--- 140.82.113.4:443 tcping statistics ---\n4 probes sent, 4 successful, 0.00% packet loss\nRound-trip min/avg/max = 11.4410ms/12.3425ms/12.7510ms\nAddress resolved in 0.9340 ms\n```\n\n## Installation\n\n### Download from Releases\n\nDownload the precompiled binaries from the [Releases Page](https://github.com/lvillis/tcping-rs/releases).\n\n* Navigate to the [Releases](https://github.com/lvillis/tcping-rs/releases) section.\n* Download the appropriate binary for your operating system.\n* Extract the executable and place it in a directory included in your PATH.\n\n### Using Docker\n\nRun `tcping-rs` using the Docker image:\n\n```shell\ndocker run --rm docker.io/lvillis/tcping:latest \u003chost:port\u003e [options]\n```\n\n### Using Nix\n\n`tcping-rs` is available in nixpkgs. To install it system wide:\n\n```nix\n  environment.systemPackages = [\n    pkgs.tcping-rs\n  ];\n```\n\nOr spawn in a nix-shell:\n\n```console\nnix-shell -p tcping-rs\n```\n\n## About\n\nThis tool allows you to measure the latency to a server using TCP. It is built with Rust and uses the clap library for\ncommand line argument parsing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvillis%2Ftcping-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flvillis%2Ftcping-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvillis%2Ftcping-rs/lists"}