|
Client (library) |
Server (library) |
Version compared |
Protocol (spec) version support |
Protocol test report |
License |
Implementation: language, environment |
API: language, environment |
Self-hosted server |
Text message support |
Binary message support |
API message-based |
API frame-based |
API streaming input-output |
Flow-control framework |
Automatic pongs for pings |
Automatic heartbeat pings |
Manual pings-pongs |
Frame size limit |
Google Chrome 15[1] |
Yes |
No |
15.0.874.8 12 Sep 2011 |
8 (10) |
|
Complex |
C++, WebKit |
JavaScript, HTML5 |
No |
Yes |
Yes |
Yes |
No |
No, No |
No |
Yes |
No |
No |
≥ 16 MB (memory-limited?) |
Google Chrome 16[1] |
Yes |
No |
16.0.912 13 Dec 2011 |
13 (17/RFC 6455) |
|
Complex |
C++, WebKit |
JavaScript, HTML5 |
No |
Yes |
Yes |
Yes |
No |
No, No |
No |
Yes |
No |
No |
≥ 16 MB (memory-limited?) |
Mozilla Firefox 7[2] |
Yes |
No |
7 beta 12 Sep 2011 |
8 (10) |
|
MPL, GPL, LGPL |
C++, Necko |
JavaScript, HTML5 |
No |
Yes |
No |
Yes |
No |
No, No |
No |
Yes |
No |
No |
< 16 MB |
Mozilla Firefox 11[2] |
Yes |
No |
11.0 13 Mar 2012 |
13 (17/RFC 6455) |
|
MPL, GPL, LGPL |
C++, Necko |
JavaScript, HTML5 |
No |
Yes |
Yes |
Yes |
No |
No, No |
No |
Yes |
No |
No |
< 2 GB (memory-limited?) |
Achex WS[3] |
Yes |
Yes |
2.17 17 June 2014 |
RFC 6455 |
|
Commercial |
C++ |
C++, JavaScript |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
Yes |
2^16 |
Kaazing WebSocket Gateway[4] |
Yes |
Yes |
5.0 Dec 2014 |
RFC 6455 |
|
APL2 (Community Edition), commercial (Enterprise Edition) |
Java, JMS |
JavaScript, Flash/Flex, Silverlight, Objective-C & iOS, Java, Java & Android, .NET, Xamarin |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
No |
memory-limited, configurable |
Lightstreamer[5] |
Yes |
Yes |
7.4.7 12 Jun 2025 |
RFC 6455 |
|
Commercial, freeware |
Java |
JavaScript, Android, Java, Swift, iOS, macOS, tvOS, watchOS, visionOS, .NET Standard, C++, Python, Flash/Flex, Silverlight, J2ME |
Yes |
Yes |
No |
Yes |
No |
No |
Yes |
Yes |
Yes |
No |
Data driven, configurable |
MigratoryData[6] |
Yes |
Yes |
6.0.5 29 Aug 2021 |
RFC 6455 |
|
Commercial |
Java |
JavaScript, iOS, Android, Java, C++, .NET, PHP, Node.js, Python |
Yes |
Yes |
No |
Yes |
No |
No, No |
Yes |
Yes |
Yes |
No |
263, configurable |
Mongoose[7] |
Yes |
Yes |
7.9 24 Jan 2023 |
RFC 6455 |
|
GPL, commercial |
C/C++ |
C/C++ |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
263, configurable |
noPoll[8] |
Yes |
Yes |
0.3.2 28 aug 2015 |
RFC 6455 |
|
LGPL 2.1 |
ANSI C |
ANSI C |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
memory-limited, configurable |
POCO C++ Libraries[9] |
Yes |
Yes |
1.4.6 23 Sep 2014 |
RFC 6455 |
|
Boost |
C++, POCO C++ Libraries |
C++ |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
No |
No |
No |
Yes |
memory-limited, configurable |
PowerWebSockets[10] |
Yes |
Yes |
15.176.5188 26 Jun 2015 |
RFC 6455 |
Test report[11] |
Commercial |
.NET |
.NET Framework, .NET Compact Framework, Xamarin. iOS, Xamarin.Android, Windows Phone, Silverlight, Mono |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
memory-limited, configurable |
QtWebSockets[12] |
Yes |
Yes |
1.0 12 Nov 2013 |
RFC 6455 |
|
LGPL |
C++, Qt |
Qt |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
memory-limited, configurable |
RingSocket[13] |
No |
Yes |
1.0 13 Sep 2019 |
RFC 6455 |
|
MIT |
C |
C |
Yes |
Yes |
Yes |
Yes |
No |
No |
Yes |
Yes |
No |
No |
unlimited/configurable |
Resin[14] |
No |
Yes |
4.026 29 Feb 2012 |
RFC 6455 |
|
GPL, commercial |
Java, C |
Java |
|
Yes |
Yes |
Yes |
No |
Yes |
No |
Yes |
No |
No |
memory-limited, configurable |
WebSocketListener[15] |
No |
Yes |
2.1.3 24 Nov 2014 |
RFC 6455 |
|
MIT |
.NET, Mono |
.NET, Mono |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
No |
Configurable |
Wt[16] |
No |
Yes |
3.2.0 30 Nov 2011 |
0,7,8,13 (17) |
[? Report] |
GPL, commercial |
C++, Boost Asio |
C++ |
|
Yes |
Yes |
No |
No |
No |
Yes |
Yes |
Yes |
No |
memory-limited, configurable |
XSockets.NET[17] |
Yes |
Yes |
5.* |
RFC 6455 |
|
Commercial |
.NET |
Server-languages: Windows (.NET), Unix-Linux (Mono)
Client-languages: JavaScript, .NET, Mono |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
memory-limited, configurable |
RIWA Gateway[18] |
Yes |
Yes |
2.01 |
RFC 6455 |
|
Commercial |
Java |
Java, Android, iOS, JavaScript |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
No |
Yes |
No |
No |
memory-limited, configurable |
μWebSockets[19] |
No |
Yes |
v0.14.0 28 Mar 2017 |
RFC 6455 |
Test report[20] |
Apache License 2.0 |
C++, epoll, Libuv, Boost Asio |
C++, JavaScript, Node.js |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
memory-limited, configurable |
Boost.Beast[21] |
Yes |
Yes |
94 30 July 2017 |
RFC 6455 |
Test report[22] |
Boost |
C++, Boost Asio |
C++ |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked) |
libwebsockets[23] |
Yes |
Yes |
2.4 16 Oct 2017 |
RFC 6455 + RFC 7692 |
Test report[24] |
LGPL2 + SLE |
C, libuv, libev [Wikidata], libevent, poll, external poll loop integration, OpenSSL, mbedTLS |
C, HTML5, JavaScript |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes, yes |
Yes |
Yes |
Yes |
Yes |
unlimited (packets streamed to user code), permessage-deflate also unlimited (chunked) |
websocket++[25] |
Yes |
Yes |
0.8.2 20 Apr, 2020 |
RFC 6455 |
|
BSD |
C++11 |
C++11 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
facil.io[26] |
Yes |
Yes |
0.7.1 18 May 2019 |
RFC 6455 |
|
MIT |
C |
C |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes, yes |
Yes |
Yes |
Yes |
Yes |
configurable client to server limits. unlimited (chunked) server to client. |
oatpp-websocket[27] |
Yes |
Yes |
1.3.0 19 Nov 2021 |
RFC 6455 |
|
Apache License 2.0 |
C++11, Oat++ |
C++11, Oat++ |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
Yes |
unlimited (packets streamed to user code) |