{"id":48008786,"url":"https://github.com/gsnw/fping-rust","last_synced_at":"2026-04-04T13:27:20.322Z","repository":{"id":344419026,"uuid":"1175787760","full_name":"gsnw/fping-rust","owner":"gsnw","description":"High-performance ping tool fping-rust as an attempt to translate fping into Rust","archived":false,"fork":false,"pushed_at":"2026-03-28T11:50:23.000Z","size":64,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T14:16:38.310Z","etag":null,"topics":["bsd-license","fping","fping-rust","icmp","network-discovery","network-monitoring","ping","rust","rust-lang","unix-command"],"latest_commit_sha":null,"homepage":"https://github.com/gsnw/fping-rust","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gsnw.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2026-03-08T06:57:39.000Z","updated_at":"2026-03-28T11:38:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gsnw/fping-rust","commit_stats":null,"previous_names":["gsnw/fping-rust"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gsnw/fping-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsnw%2Ffping-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsnw%2Ffping-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsnw%2Ffping-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsnw%2Ffping-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gsnw","download_url":"https://codeload.github.com/gsnw/fping-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsnw%2Ffping-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bsd-license","fping","fping-rust","icmp","network-discovery","network-monitoring","ping","rust","rust-lang","unix-command"],"created_at":"2026-04-04T13:27:20.211Z","updated_at":"2026-04-04T13:27:20.303Z","avatar_url":"https://github.com/gsnw.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fping-rust\n\n[\u003cimg alt=\"github\" src=\"https://img.shields.io/badge/github-gsnw/fping-rust?style=for-the-badge\u0026logo=github\" height=\"20\"\u003e](https://github.com/gsnw/fping-rust)\n[![Rust CI](https://github.com/gsnw/fping-rust/actions/workflows/rust-ci.yml/badge.svg)](https://github.com/gsnw/fping-rust/actions/workflows/rust-ci.yml)\n[![Downloads](https://img.shields.io/github/downloads/gsnw/fping-rust/total.svg)](https://github.com/gsnw/fping-rust/releases)\n[![Crates.io](https://img.shields.io/crates/v/fping-rust.svg)](https://crates.io/crates/fping-rust)\n\nfping-rust is an attempt to translate the fping program into Rust.\n\nThis version is licensed under the GPL\n\n## Original\n\nOriginal fping is a program to send ICMP echo probes to network hosts, similar to ping,\nbut much better performing when pinging multiple hosts. fping has a long long\nstory: Roland Schemers did publish a first version of it in 1992 and it has\nestablished itself since then as a standard tool.\n\n## Installation\n\n```\ncargo build\ncargo install --path=/usr/local\n```\n\nMake fping either setuid, or, if under Linux\n\n```\nsudo setcap cap_net_raw,cap_net_admin+ep fping`\n```\n\nIf you can't run fping as root or can't use the cap_net_raw capability, you can also run fping in unprivileged mode. This works on MacOS and also on Linux, provided that your GID is included in the range defined in `/proc/sys/net/ipv4/ping_group_range`. This is particularly useful for running fping-rust in rootless / unprivileged containers.\n\n```\necho \"net.ipv4.ping_group_range = 0 2147483647\" \u003e\u003e /etc/sysctl.d/local.conf\n```\n\n## Usage\n\n```\nFast ping to multiple hosts\n\nUsage: fping [OPTIONS] [TARGETS]...\n\nArguments:\n  [TARGETS]...  Target hosts\n\nOptions:\n  -c, --count \u003cN\u003e          Count mode: send N pings to each target\n  -C, --vcount \u003cN\u003e         Same as -c but verbose output (all RTTs)\n  -l, --loop               Loop mode: send pings forever\n  -i, --interval \u003cMSEC\u003e    Interval between packets in ms (default: 10) [default: 10]\n  -p, --period \u003cMSEC\u003e      Per-host interval in ms (default: 1000) [default: 1000]\n  -t, --timeout \u003cMSEC\u003e     Timeout in ms (default: 500) [default: 500]\n  -r, --retry \u003cRETRY\u003e      Number of retries (default: 3) [default: 3]\n  -B, --backoff \u003cBACKOFF\u003e  Exponential backoff factor (default: 1.5) [default: 1.5]\n  -b, --size \u003cBYTES\u003e       Ping data size in bytes (default: 56) [default: 56]\n  -f, --file \u003cFILE\u003e        Read hosts from file (- = stdin)\n  -a, --alive              Show only alive hosts\n  -u, --unreach            Show only unreachable hosts\n  -q, --quiet              Quiet: don't show per-ping results\n  -s, --stats              Print final stats\n  -e, --elapsed            Show elapsed time on received packets\n  -A, --addr               Show targets by address\n  -D, --timestamp          Timestamp before each line\n  -J, --json               JSON output (requires -c, -C or -l)\n  -4, --ipv4               Use IPv4 only\n  -6, --ipv6               Use IPv6 only\n      --report-all-rtts    Show all individual RTTs\n  -x, --reachable \u003cN\u003e      Minimum number of reachable hosts to be considered success\n  -h, --help               Print help\n  -V, --version            Print version\n```\n\n## Test\n\n### Run all tests\n\n```\ncargo test\n```\n\n### Run special test\n\n```\ncargo test --test args_tests\ncargo test --test dns_tests\ncargo test --test output_tests\ncargo test --test socket_tests\ncargo test --test types_tests\n```\n\n### Run specific test by name\n\n```\ncargo test --test types_tests loss_pct_50\n```\n\n### Overview of the test files\n\n| File | Description | root required |\n| ---- | ----------- | ------------- |\n| args_tests.rs | CLI argument parsing, default values | No |\n| dns_tests.rs | Hostname resolution, IP filtering | No* |\n| output_tests.rs | `sprint_tm`, `max_host_len` | No |\n| socket_tests.rs | Packet construction, checksum, ID/Seq encoding | No |\n| types_tests.rs | `HostEntry` logic, statistics | No |\n\n\u0026#42; Network access is required for DNS resolution (localhost is always available).\n\n## Reference\n\n* https://github.com/schweikert/fping","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsnw%2Ffping-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsnw%2Ffping-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsnw%2Ffping-rust/lists"}