{"id":24057464,"url":"https://github.com/fbielejec/load-test","last_synced_at":"2025-08-12T05:09:12.796Z","repository":{"id":44795889,"uuid":"316735273","full_name":"fbielejec/load-test","owner":"fbielejec","description":"High-throughput tool for testing APIs.","archived":false,"fork":false,"pushed_at":"2022-01-24T09:46:16.000Z","size":84,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-04T12:54:57.531Z","etag":null,"topics":["benchmarking","grpc","rust","websocket"],"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/fbielejec.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}},"created_at":"2020-11-28T13:03:05.000Z","updated_at":"2025-07-30T14:29:21.000Z","dependencies_parsed_at":"2022-08-20T09:00:33.127Z","dependency_job_id":null,"html_url":"https://github.com/fbielejec/load-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fbielejec/load-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbielejec%2Fload-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbielejec%2Fload-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbielejec%2Fload-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbielejec%2Fload-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fbielejec","download_url":"https://codeload.github.com/fbielejec/load-test/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbielejec%2Fload-test/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270005591,"owners_count":24510939,"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-08-12T02:00:09.011Z","response_time":80,"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":["benchmarking","grpc","rust","websocket"],"created_at":"2025-01-09T05:42:21.795Z","updated_at":"2025-08-12T05:09:12.776Z","avatar_url":"https://github.com/fbielejec.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [load-test](https://github.com/fbielejec/ws-load-test)\n\nload-test is a high-throughput tool for testing APIs.\n\nIt will open a specified number concurrent connections to the endpoint and start flooding it with PING requests, collecting measured time until the response arrives.\n\nLoad-test comes in two flavours:\n- websocket client\n- gRPC client\n\n## Blog Article:\n\n* [Blog article](https://www.blog.nodrama.io/rust-websocket/)\n\n\n## Usage\n\n**INSTALLATION**:\n```bash\ncargo install load-test --git https://github.com/fbielejec/load-test.git\n```\nThis will download, compile, and install the `ws-load-test` and `grpc-load-test` binaries into your `PATH`\n\n**FLAGS:**\n- `-h, --help`      Prints help information\n- `-V, --version`   Prints version information\n\n**OPTIONS:**\n- `-c, --connections`   the number of concurrent connections to open\n- `-g, --gateway`       the URL of the websocket gateway endpoint\n- `-v, --verbose`       verbosity: info | debug | warn | error\n\n## Building from source\n\nCompile release binaries:\n\n```bash\ncargo build --release --bin ws-load-test\ncargo build --release --bin grpc-load-test\n```\n\nRun:\n\n```bash\n./target/release/ws-load-test --url ws://localhost:3001 -c 1000\n./target/release/grpc-load-test --url http2://localhost:50051 -c 1000\n```\n\n## Development\n\nMeasurements and the reported statistics (count, min, mean, max) are collected across all client connection tasks using Rust port of\n[High Dynamic Range Histograms](https://github.com/HdrHistogram/HdrHistogram_rust), a low-latency, high-range histogram implementation.\n\nConcurrent tasks (WS connections) rely on the [async-std](https://github.com/async-rs/async-std) asynchronous runtime, which chooses how to run them, i.e. how many threads to start and how to distribute tasks on them.\n\n### watch, build and run\n\nExample:\n\n```bash\ncargo watch -s \"cargo run --bin ws-load-test -- --url ws://echo.websocket.org -v info -c 10\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffbielejec%2Fload-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffbielejec%2Fload-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffbielejec%2Fload-test/lists"}