{"id":40176620,"url":"https://github.com/sergey-melnychuk/mio-websocket-server","last_synced_at":"2026-01-19T17:34:19.873Z","repository":{"id":42552889,"uuid":"197441802","full_name":"sergey-melnychuk/mio-websocket-server","owner":"sergey-melnychuk","description":"Implementation of websocket server with mio and parser combinators","archived":false,"fork":false,"pushed_at":"2022-03-29T01:40:22.000Z","size":42,"stargazers_count":16,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-11T20:52:24.847Z","etag":null,"topics":["mio","parser-combinators"],"latest_commit_sha":null,"homepage":"https://sergey-melnychuk.github.io/2020/04/27/multi-threaded-http-websocket-server-in-rust/","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/sergey-melnychuk.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":"2019-07-17T18:25:14.000Z","updated_at":"2024-02-26T21:06:17.000Z","dependencies_parsed_at":"2022-08-23T23:20:58.367Z","dependency_job_id":null,"html_url":"https://github.com/sergey-melnychuk/mio-websocket-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sergey-melnychuk/mio-websocket-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-melnychuk%2Fmio-websocket-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-melnychuk%2Fmio-websocket-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-melnychuk%2Fmio-websocket-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-melnychuk%2Fmio-websocket-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergey-melnychuk","download_url":"https://codeload.github.com/sergey-melnychuk/mio-websocket-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergey-melnychuk%2Fmio-websocket-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28577421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T16:29:19.148Z","status":"ssl_error","status_checked_at":"2026-01-19T16:29:17.772Z","response_time":67,"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":["mio","parser-combinators"],"created_at":"2026-01-19T17:34:19.299Z","updated_at":"2026-01-19T17:34:19.863Z","avatar_url":"https://github.com/sergey-melnychuk.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mio-websocket-server\nAsync implementation of websocket server with mio and parser combinators\n\n### Running locally\n\n1. `RUST_LOG=debug cargo run`\n1. Open `client.html` in browser\n1. `[26/04/2020, 15:17:40] connected`\n1. `[26/04/2020, 15:17:40] sent: hello!`\n1. `[26/04/2020, 15:17:40] received 'ECHO: 'hello!'`\n\n### Quick benchmarking\n\n- n1-standard-8 (8 vCPUs, 30 GB memory)\n- `wrk -d 30s -t 4 -c 128 http://127.0.0.1:9000/`\n\n#### Single-thread (hard-coded response): [mio-tcp-server](https://github.com/sergey-melnychuk/mio-tcp-server)\n\n```\nRunning 30s test @ http://127.0.0.1:8080/\n  4 threads and 128 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency     1.16ms  139.76us   2.74ms   78.04%\n    Req/Sec    27.49k     2.91k  119.25k    95.92%\n  3284968 requests in 30.10s, 275.69MB read\nRequests/sec: 109134.67\nTransfer/sec:      9.16MB\n```\n\n#### Multi-threaded (hard-coded response)\n\n```\nRunning 30s test @ http://127.0.0.1:9000/\n  4 threads and 128 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency   581.95us    1.15ms  28.56ms   97.82%\n    Req/Sec    65.83k     5.14k   77.73k    79.15%\n  7863843 requests in 30.04s, 659.96MB read\nRequests/sec: 261810.66\nTransfer/sec:     21.97MB\n```\n\n#### Multi-threader (request parsing + response serialization)\n\n```\nRunning 30s test @ http://127.0.0.1:9000/\n  4 threads and 128 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency   806.85us  534.28us  16.80ms   98.72%\n    Req/Sec    40.07k     3.81k   69.72k    53.12%\n  4789399 requests in 30.10s, 424.78MB read\nRequests/sec: 159116.81\nTransfer/sec:     14.11MB\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergey-melnychuk%2Fmio-websocket-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergey-melnychuk%2Fmio-websocket-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergey-melnychuk%2Fmio-websocket-server/lists"}