Commit 1b86feac authored by Alex Hultman's avatar Alex Hultman Committed by GitHub
Browse files


parent 4ac6aab8
<div align="center"><img src="misc/images/logo.png"/></div>
`µWS` is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. It features an easy-to-use, fully async object-oriented interface and scales to millions of connections using only a fraction of memory compared to the competition. While performance and scalability are two of our top priorities, we consider security, stability and standards compliance paramount. License is zlib/libpng (very permissive & suits commercial applications).
* Autobahn tests [all pass](
* One million WebSockets require ~111mb of user space memory (104 bytes per WebSocket).
* By far one of the fastest in both HTTP and WebSocket throughput (see table below).
......@@ -8,7 +10,7 @@
* Runs with raw epoll, libuv or ASIO (C++17-ready).
* Valgrind & AddressSanitizer clean.
* Permessage-deflate, SSL/TLS support & integrates with foreign HTTP(S) servers.
* Multi-core friendly.
* Multi-core friendly & optionally thread-safe via compiler flag UWS_THREADSAFE.
[![](]( [![](misc/images/patreon.png)](
......@@ -20,8 +22,8 @@ The interface has been designed for simplicity and only requires you to write a
int main() {
uWS::Hub h;
h.onMessage([](uWS::WebSocket<uWS::SERVER> ws, char *message, size_t length, uWS::OpCode opCode) {
ws.send(message, length, opCode);
h.onMessage([](uWS::WebSocket<uWS::SERVER> *ws, char *message, size_t length, uWS::OpCode opCode) {
ws->send(message, length, opCode);
h.onHttpRequest([](uWS::HttpResponse *res, uWS::HttpRequest req, char *data, size_t length, size_t remainingBytes) {
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment