{"id":15037597,"url":"https://github.com/unetworking/uwebsockets","last_synced_at":"2026-01-15T22:20:51.263Z","repository":{"id":37677834,"uuid":"54360307","full_name":"uNetworking/uWebSockets","owner":"uNetworking","description":"Simple, secure \u0026 standards compliant web server for the most demanding of applications","archived":false,"fork":false,"pushed_at":"2025-02-26T14:02:08.000Z","size":4828,"stargazers_count":17848,"open_issues_count":32,"forks_count":1795,"subscribers_count":402,"default_branch":"master","last_synced_at":"2025-04-14T07:54:53.847Z","etag":null,"topics":["commercial","cross-platform","http","proxy-protocol","pubsub","router","websockets"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uNetworking.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},"funding":{"custom":["https://www.paypal.me/uwebsockets"]}},"created_at":"2016-03-21T04:39:40.000Z","updated_at":"2025-04-14T07:15:23.000Z","dependencies_parsed_at":"2023-09-23T23:56:14.318Z","dependency_job_id":"a355ee43-495c-46aa-bfa8-04cf3367ad75","html_url":"https://github.com/uNetworking/uWebSockets","commit_stats":{"total_commits":1059,"total_committers":48,"mean_commits":22.0625,"dds":0.1586402266288952,"last_synced_commit":"01058d90e9d092c2d6551956d7e0785e0e94ff21"},"previous_names":["uwebsockets/uwebsockets"],"tags_count":176,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FuWebSockets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FuWebSockets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FuWebSockets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FuWebSockets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uNetworking","download_url":"https://codeload.github.com/uNetworking/uWebSockets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250386740,"owners_count":21422026,"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","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":["commercial","cross-platform","http","proxy-protocol","pubsub","router","websockets"],"created_at":"2024-09-24T20:35:04.857Z","updated_at":"2026-01-15T22:20:51.224Z","avatar_url":"https://github.com/uNetworking.png","language":"C++","readme":"\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/uNetworking/uWebSockets/master/misc/logo.svg\" height=\"180\" /\u003e\u003cbr\u003e\n\u003ci\u003eSimple, secure\u003c/i\u003e\u003csup\u003e\u003ca href=\"https://github.com/uNetworking/uWebSockets/tree/master/fuzzing#fuzz-testing-of-various-parsers-and-mocked-examples\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003ci\u003e \u0026 standards compliant\u003c/i\u003e\u003csup\u003e\u003ca href=\"https://unetworking.github.io/uWebSockets.js/report.pdf\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003ci\u003e web server for the most demanding\u003c/i\u003e\u003csup\u003e\u003ca href=\"https://github.com/uNetworking/uWebSockets/tree/master/benchmarks#benchmark-driven-development\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003ci\u003e of applications.\u003c/i\u003e \u003ca href=\"https://github.com/uNetworking/uWebSockets/blob/master/misc/READMORE.md\"\u003eRead more...\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n\u003ca href=\"https://github.com/uNetworking/uWebSockets/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/uNetworking/uWebSockets\"\u003e\u003c/a\u003e \u003ca href=\"https://osv.dev/list?q=uwebsockets\u0026affected_only=true\u0026page=1\u0026ecosystem=OSS-Fuzz\"\u003e\u003cimg src=\"https://oss-fuzz-build-logs.storage.googleapis.com/badges/uwebsockets.svg\" /\u003e\u003c/a\u003e \u003cimg src=\"https://img.shields.io/badge/est.-2016-green\" /\u003e\n\n\u003c/div\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n### :closed_lock_with_key: Optimized security\nBeing meticulously optimized for speed and memory footprint, µWebSockets is fast enough to do encrypted TLS 1.3 messaging quicker than most alternative servers can do even unencrypted, cleartext messaging\u003csup\u003e\u003ca href=\"https://github.com/uNetworking/uWebSockets/tree/master/benchmarks#benchmark-driven-development\"\u003e3\u003c/a\u003e\u003c/sup\u003e.\n\nFurthermore, we partake in Google's OSS-Fuzz with a ~95% daily fuzzing coverage\u003csup\u003e\u003ca href=\"https://github.com/uNetworking/uWebSockets/blob/master/misc/Screenshot_20210915-004009.png?raw=true\"\u003e4\u003c/a\u003e\u003c/sup\u003e with no sanitizer issues. LGTM scores us flawless A+ from having zero CodeQL alerts and we compile with pedantic warning levels.\n\n\n### :arrow_forward: Rapid scripting\nµWebSockets is written entirely in C \u0026 C++ but has a seamless integration for Node.js backends. This allows for rapid scripting of powerful apps, using widespread competence. See \u003ca href=\"https://github.com/uNetworking/uWebSockets.js\"\u003eµWebSockets.js\u003c/a\u003e.\n\n### :crossed_swords: Battle proven\nWe've been fully standards compliant with a perfect Autobahn|Testsuite score since 2016\u003csup\u003e\u003ca href=\"https://unetworking.github.io/uWebSockets.js/report.pdf\"\u003e2\u003c/a\u003e\u003c/sup\u003e. µWebSockets powers many of the biggest crypto exchanges in the world, handling trade volumes of multiple billions of USD every day. If you trade crypto, chances are you do so via µWebSockets.\n\n### :battery: Batteries included\nDesigned around a convenient URL router with wildcard \u0026 parameter support - paired with efficient pub/sub features for WebSockets. µWebSockets should be the obvious, complete starting point for any real-time web project with high demands.\n\nStart building your Http \u0026 WebSocket apps in no time; \u003ca href=\"https://github.com/uNetworking/uWebSockets/blob/master/misc/READMORE.md\"\u003eread the user manual\u003c/a\u003e and \u003ca href=\"https://github.com/uNetworking/uWebSockets/tree/master/examples\"\u003esee examples\u003c/a\u003e. You can browse our \u003ca href=\"https://unetworking.github.io/uWebSockets.js/generated/\"\u003eTypeDoc\u003c/a\u003e for a quick overview.\n\n```c++\n/* One app per thread; spawn as many as you have CPU-cores and let uWS share the listening port */\nuWS::SSLApp({\n\n    /* These are the most common options, fullchain and key. See uSockets for more options. */\n    .cert_file_name = \"cert.pem\",\n    .key_file_name = \"key.pem\"\n    \n}).get(\"/hello/:name\", [](auto *res, auto *req) {\n\n    /* You can efficiently stream huge files too */\n    res-\u003ewriteStatus(\"200 OK\")\n       -\u003ewriteHeader(\"Content-Type\", \"text/html; charset=utf-8\")\n       -\u003ewrite(\"\u003ch1\u003eHello \")\n       -\u003ewrite(req-\u003egetParameter(\"name\"))\n       -\u003eend(\"!\u003c/h1\u003e\");\n    \n}).ws\u003cUserData\u003e(\"/*\", {\n\n    /* Just a few of the available handlers */\n    .open = [](auto *ws) {\n        ws-\u003esubscribe(\"oh_interesting_subject\");\n    },\n    .message = [](auto *ws, std::string_view message, uWS::OpCode opCode) {\n        ws-\u003esend(message, opCode);\n    }\n    \n}).listen(9001, [](auto *listenSocket) {\n\n    if (listenSocket) {\n        std::cout \u003c\u003c \"Listening on port \" \u003c\u003c 9001 \u003c\u003c std::endl;\n    } else {\n        std::cout \u003c\u003c \"Failed to load certs or to bind to port\" \u003c\u003c std::endl;\n    }\n    \n}).run();\n```\n### :briefcase: Commercially supported\n\u003ca href=\"https://github.com/uNetworking\"\u003euNetworking AB\u003c/a\u003e is a Swedish consulting \u0026 contracting company dealing with anything related to µWebSockets; development, support and customer success.\n\nDon't hesitate \u003ca href=\"mailto:alexhultman@gmail.com\"\u003esending a mail\u003c/a\u003e if you're building something large, in need of advice or having other business inquiries in mind. We'll figure out what's best for both parties and make sure you're not falling into common pitfalls.\n\nSpecial thanks to BitMEX, Bitfinex, Google, Coinbase, Bitwyre, AppDrag and deepstreamHub for allowing the project itself to thrive on GitHub since 2016 - this project would not be possible without these beautiful companies.\n\n### :wrench: Customizable architecture\nµWebSockets builds on \u003ca href=\"https://github.com/uNetworking/uSockets\"\u003eµSockets\u003c/a\u003e, a foundation library implementing eventing, networking and cryptography in three different layers. Every layer has multiple implementations and you control the compiled composition with flags. There are currently five event-loop integrations; libuv, ASIO, GCD and raw epoll/kqueue.\n\nIn a nutshell:\n\n* `WITH_WOLFSSL=1 WITH_LIBUV=1 make examples` builds examples utilizing WolfSSL and libuv\n* `WITH_OPENSSL=1 make examples` builds examples utilizing OpenSSL and the native kernel\n\nSee µSockets for an up-to-date list of flags and a more detailed explanation.\n\n### :handshake: Permissively licensed\nIntellectual property, all rights reserved.\n\nWhere such explicit notice is given, source code is licensed Apache License 2.0 which is a permissive OSI-approved license with very few limitations. Modified \"forks\" should be of nothing but licensed source code, and be made available under another product name. If you're uncertain about any of this, please ask before assuming.\n","funding_links":["https://www.paypal.me/uwebsockets"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funetworking%2Fuwebsockets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funetworking%2Fuwebsockets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funetworking%2Fuwebsockets/lists"}