{"id":28455108,"url":"https://github.com/d-rickyy-b/webstress","last_synced_at":"2025-07-25T16:06:01.872Z","repository":{"id":88030592,"uuid":"515798130","full_name":"d-Rickyy-b/webstress","owner":"d-Rickyy-b","description":"Websocket stress tool developed in Go","archived":false,"fork":false,"pushed_at":"2024-12-28T14:40:36.000Z","size":149,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T16:45:53.596Z","etag":null,"topics":["go","golang","stress-test","stress-testing","tui","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","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/d-Rickyy-b.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}},"created_at":"2022-07-20T01:49:44.000Z","updated_at":"2024-12-28T14:40:39.000Z","dependencies_parsed_at":"2024-05-30T13:15:07.273Z","dependency_job_id":"4a25e725-7be8-4180-907d-8057292a2ea1","html_url":"https://github.com/d-Rickyy-b/webstress","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/d-Rickyy-b/webstress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-Rickyy-b%2Fwebstress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-Rickyy-b%2Fwebstress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-Rickyy-b%2Fwebstress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-Rickyy-b%2Fwebstress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-Rickyy-b","download_url":"https://codeload.github.com/d-Rickyy-b/webstress/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-Rickyy-b%2Fwebstress/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267029407,"owners_count":24024199,"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-07-25T02:00:09.625Z","response_time":70,"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":["go","golang","stress-test","stress-testing","tui","websocket"],"created_at":"2025-06-06T21:15:18.666Z","updated_at":"2025-07-25T16:06:01.844Z","avatar_url":"https://github.com/d-Rickyy-b.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webstress\n[![build](https://github.com/d-Rickyy-b/webstress/actions/workflows/release_build.yml/badge.svg)](https://github.com/d-Rickyy-b/webstress/actions/workflows/release_build.yml)\n[![Go Reference](https://pkg.go.dev/badge/github.com/d-Rickyy-b/webstress/.svg)](https://pkg.go.dev/github.com/d-Rickyy-b/webstress/)\n\nWhile developing my tool [certstream-server-go](https://github.com/d-Rickyy-b/certstream-server-go), I was searching for a tool to stress test my websocket server.\nNot by sending requests, but by immitating the behaviour of a client that's on the receiving end.\nI came across the python tool [wsstat](https://github.com/Fitblip/wsstat) by [Fitblip](https://github.com/Fitblip).\n\nSadly I ran into troubles installing the tool, so I decided to create my own.\n\nWebstress connects to a websocket server, receives messages sent by the server and counts them.\nIt is able to connect via an arbitrary amount of workers, which will receive messages from the server in parallel.\nThis helped my stress test my websocket server and monitor how it behaved under load.\n\nFor a more advanced tool check out [websocat](https://github.com/vi/websocat).\n\n## Screenshot\n![webstress screenshot](https://github.com/d-Rickyy-b/webstress/blob/master/docs/img/webstress_impression.png?raw=true)\n\n## Usage\nUsing webstress is simple. You can either download and compile the code by yourself or use one of our [precompiled binaries](https://github.com/d-Rickyy-b/webstress/releases). Since it's written in Go, you should be able to run it on any mayor OS.\n\n```\nUsage of webstress:\nusage: webstress [-h|--help] -a|--remote-addr \"\u003cvalue\u003e\" [-r|--recover]\n                 [-p|--ping-interval \u003cinteger\u003e] [-w|--worker-count \u003cinteger\u003e]\n                 [-l|--ratelimit \u003cinteger\u003e]\n\n                 Websocket stress tool developed in Go\n\nArguments:\n\n  -h  --help           Print help information\n  -a  --remote-addr    remote address to connect to\n  -r  --recover        recover from certain errors. Default: true\n  -p  --ping-interval  number of seconds between pings. Default: 30\n  -w  --worker-count   number of workers to start. Default: 30\n  -l  --ratelimit      rate limit in messages per second per websocket. Default: 0\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-rickyy-b%2Fwebstress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-rickyy-b%2Fwebstress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-rickyy-b%2Fwebstress/lists"}