- Autobahn tests all pass.
- One million WebSockets require ~111mb of user space memory (104 bytes per WebSocket).
- Single-threaded throughput of up to 5 million HTTP req/sec or 20 million WebSocket echoes/sec.
- Linux, OS X, Windows & Node.js support.
- 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 & optionally thread-safe via compiler flag UWS_THREADSAFE.
First of all you need to install the required dependencies. This is very easily done with a good open source package manager like Homebrew for OS X, vcpkg for Windows or your native Linux package manager.
- OpenSSL 1.x.x
- zlib 1.x
- libuv 1.3+ or Boost.Asio 1.x (both optional on Linux)
If you wish to integrate with a specific event-loop you can define USE_ASIO or USE_LIBUV as a global compilation flag and then link to respective libraries. USE_EPOLL is default on Linux while other systems default to USE_LIBUV.
- Fedora:
sudo dnf install openssl-devel zlib-devel - Homebrew:
brew install openssl zlib libuv - Vcpkg:
vcpkg install openssl zlib libuvand/orvcpkg install openssl:x64-windows zlib:x64-windows libuv:x64-windows
makesudo make install(or as you wish)
- Compile
VC++.vcxprojwith Visual C++ Community Edition 2015 or later.