Comparison of WebSocket implementations explained

The WebSocket protocol is implemented in different web browsers, web servers, and run-time environments and libraries acting as clients or servers. The following is a table of different features of notable WebSocket implementations.

Client (library)Server (library)Version comparedProtocol (spec) version supportProtocol test reportLicenseImplementation: language, environmentAPI: language, environmentSelf-hosted serverText message supportBinary message supportAPI message-basedAPI frame-basedAPI streaming input-outputFlow-control frameworkAutomatic pongs for pingsAutomatic heartbeat pingsManual pings-pongsFrame size limit
Google Chrome 15[1] 15.0.874.8
8 (10)C++, WebKitJavaScript, HTML5, No ≥ 16 MB
(memory-limited?)
Google Chrome 1616.0.912
13 (17/RFC 6455)C++, WebKitJavaScript, HTML5, No ≥ 16 MB
(memory-limited?)
Mozilla Firefox 7[2] 7 beta
8 (10)C++, NeckoJavaScript, HTML5, No < 16 MB
Mozilla Firefox 1111.0
13 (17/RFC 6455)C++, NeckoJavaScript, HTML5, No < 2 GB
(memory-limited?)
Achex WS[3] 2.17
RFC 6455C++C++, JavaScript 2^16
Kaazing WebSocket Gateway[4] 5.0 Dec 2014RFC 6455Java, JMSJavaScript, Flash/Flex, Silverlight, Objective-C & iOS, Java, Java & Android, .NET, Xamarinmemory-limited, configurable
Lightstreamer[5] 7.4.4
RFC 6455JavaJavaScript, Android, Java, Swift, iOS, macOS, tvOS, watchOS, visionOS, .NET Standard, Python, Flash/Flex, Silverlight, J2MEData driven, configurable
MigratoryData[6] 6.0.5
RFC 6455Java, No263, configurable
Mongoose[7] 7.9
RFC 6455C/C++263, configurable
noPoll[8] 0.3.2
RFC 6455ANSI CANSI Cmemory-limited, configurable
POCO C++ Libraries[9] 1.4.6
RFC 6455C++, POCO C++ LibrariesC++memory-limited, configurable
PowerWebSockets[10] 15.176.5188
RFC 6455Test report[11] .NET.NET Framework, .NET Compact Framework, Xamarin. iOS, Xamarin.Android, Windows Phone, Silverlight, Monomemory-limited, configurable
QtWebSockets[12] 1.0
RFC 6455C++, QtQtmemory-limited, configurable
RingSocket[13] 1.0
RFC 6455CCunlimited/configurable
Resin[14] 4.026
RFC 6455Java, CJavamemory-limited, configurable
WebSocketListener[15] 2.1.3
RFC 6455.NET, Mono.NET, Mono Configurable
Wt[16] 3.2.0
0,7,8,13 (17)[? Report]C++, Boost AsioC++ memory-limited, configurable
XSockets.NET[17] 5.*RFC 6455.NETServer-languages: Windows (.NET), Unix-Linux (Mono)
Client-languages: JavaScript, .NET, Mono
memory-limited, configurable
RIWA Gateway[18] 2.01 RFC 6455JavaJava, Android, iOS, JavaScriptmemory-limited, configurable
μWebSockets[19] v0.14.0
RFC 6455Test reportTestsuite report">μWebSockets Autobahn|Testsuite reportC++, epoll, Libuv, Boost AsioC++, JavaScript, Node.jsmemory-limited, configurable
Boost.Beast[20] 94
RFC 6455Test reportTestsuite report">Beast.WebSocket Autobahn|Testsuite reportC++, Boost AsioC++unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked)
libwebsockets[21] 2.4
RFC 6455 + RFC 7692Test reportTestsuite report">libwebsockets.org lws Autobahn|Testsuite reportC, libuv,, libevent, poll, external poll loop integration, OpenSSL, mbedTLSC, HTML5, JavaScript, yesunlimited (packets streamed to user code), permessage-deflate also unlimited (chunked)
websocket++[22] 0.8.2
RFC 6455C++11C++11???????????
facil.io[23] 0.7.1
RFC 6455CC, yes configurable client to server limits. unlimited (chunked) server to client.
oatpp-websocket[24] 1.3.0
RFC 6455C++11, Oat++C++11, Oat++unlimited (packets streamed to user code)

Notes and References

  1. https://www.chromium.org/ Chromium website
  2. https://developer.mozilla.org/en/Necko Necko website
  3. http://www.achex.ca/ Achex WS website
  4. http://kaazing.com/ Kaazing website
  5. https://lightstreamer.com/ Lightstreamer website
  6. https://migratorydata.com MigratoryData website
  7. https://mongoose.ws Mongoose Library website
  8. http://aspl.es/nopoll noPoll website
  9. http://pocoproject.org/docs/Poco.Net.WebSocket.html POCO C++ Libraries documentation
  10. https://www.noemax.com/powerwebsockets/ PowerWebSockets website
  11. https://www.noemax.com/powerwebsockets/autobahn/index.html PowerWebSockets Autobahn|Testsuite report
  12. http://qt-project.org/wiki/QtWebSockets QtWebSockets website
  13. https://github.com/wbudd/ringsocket RingSocket (GitHub)
  14. http://www.caucho.com/ Caucho website
  15. https://vtortola.github.io/WebSocketListener/ WebSocketListener website
  16. http://www.webtoolkit.eu/ wt website
  17. http://xsockets.net/ XSockets.NET website
  18. http://www.cazaayan.com/riwa_gateway.html RIWA website
  19. https://github.com/uNetworking/uWebSockets μWebSockets (GitHub)
  20. https://github.com/boostorg/beast Boost.Beast (GitHub)
  21. https://libwebsockets.org libwebsockets.org website
  22. https://github.com/zaphoyd/websocketpp/blob/master/readme.md websocket++ website
  23. http://facil.io facil.io website
  24. https://oatpp.io oatpp.io website