awesome-websockets
A curated list of Websocket libraries and resources.
https://github.com/facundofarias/awesome-websockets
Last synced: 16 days ago
JSON representation
-
Acknowledgments
-
Sites
-
-
Browser libraries
-
Protocols and APIs
- ZilaWS Client - A very easy-to-use and fast WS implementation with async/await eventhandlers.
- WSGO - like Axios.js, only for WebSocket, adds handy debugging tools
- react-use-websocket - React hook for WebSocket connections with reconnection, message queueing, and shared connections.
-
-
Command-Line Interface (CLI) Tools
-
Protocols and APIs
- claws - Awesome WebSocket Client - an interactive command line client for testing websocket servers.
- wscat - WebSocket cat.
- wsta - A CLI development tool for WebSocket APIs.
- ws - websocket command line tool.
- wssh - wssh ("wish") is a command-line utility/shell for WebSocket inspired by netcat.
- wsc - A tiny command line websocket client written in Go.
- ws-cli - WebSocket Command Line Client written in Go.
- ws-tool - A Develop Tool to Test WebSocket, Socket.IO, Stomp, Bayeux, HTTP, TCP, UDP, WebRTC, DNS API.
- websocketd - Turn any program that uses STDIN/STDOUT into a WebSocket server. Like inetd, but for WebSockets.
- websocat - Command-line client for WebSockets, like netcat (or curl) for ws:// with advanced socat-like functions.
- iola - Socket client with Rest API (WebSocket, Socket.IO, TCP, Unix socket).
-
-
GUI Testing Tools
-
Protocols and APIs
- Cleora - A native macOS, iOS and iPadOS WebSocket client for testing and documenting APIs.
- Firecamp - Full-featured GUI WebSocket testing client which helps Dev team to test WebSocket events visually. Test APIs, save them in the project and share it with your team.
- WebSocket King - A browser based WebSocket testing client that supports multiple simultanious connections, logs of incoming and outgoing messages, custom protocols and multiple projects.
- Simple WebSocket Client - Simple WebSocket Client (Chrome Extension).
- Cleora - A native macOS, iOS and iPadOS WebSocket client for testing and documenting APIs.
- Simple WebSocket Client - Simple WebSocket Client (Chrome Extension).
- Bruno - Open-source, offline-first API client with WebSocket support and git-friendly plain-text collections.
- Hoppscotch Realtime - Free, open-source browser client for testing WebSocket, SSE, Socket.IO and MQTT connections.
- Postman WebSocket - Send and inspect raw WebSocket and Socket.IO requests inside Postman, with saved history and collections.
- WebSocket.in - Browser-based WebSocket tester plus free public echo and broadcast endpoints for quick checks.
- Apidog - All-in-one API platform with a dedicated WebSocket debugging client for messages, params and auth.
- Postman WebSocket - Send and inspect raw WebSocket and Socket.IO requests inside Postman, with saved history and collections.
- Simple WebSocket Client - Simple WebSocket Client (Chrome Extension).
- WebSocket.in - Browser-based WebSocket tester plus free public echo and broadcast endpoints for quick checks.
-
-
Managed / Hosted Services
-
Protocols and APIs
- AWS API Gateway WebSocket APIs - Managed WebSocket APIs that route messages to Lambda and other AWS backends.
- Cloudflare Durable Objects - Stateful serverless coordination primitive commonly used to build WebSocket rooms and realtime backends at the edge.
- Cloudflare Workers WebSockets - Native WebSocket support in Cloudflare Workers, including hibernatable connections.
- PartyKit - Open-source platform for building realtime multiplayer apps on Cloudflare with a batteries-included WebSocket server abstraction.
- Supabase Realtime - Realtime engine broadcasting Postgres changes, presence, and messages to clients over WebSockets.
- Liveblocks - Hosted realtime collaboration infrastructure providing presence, storage, and comments over WebSockets.
-
-
Real Life Stories
-
Protocols and APIs
- The top 10 realtime web apps
- Super sync sports
- Firepad
- JabbR
- Kaazing
- The top 10 realtime web apps
- Firepad
- Taskade - Real-time collaborative task lists and outlines.
-
-
Security
-
Protocols and APIs
- WebSockets - An Introduction - The problems and some security implications of websockets - Cross-site WebSockets Scripting (XSWS).
- Hacking with WebSockets - Talk on Blackhat USA 2012 Conference.
- Testing for WebSockets Security Vulnerabilities - Interactive vulnerable WebSocket demos that provide hands-on learning of WebSocket security risks
- Testing WebSockets - This article is part of the new OWASP Testing Guide v4.
- Websockets Auth - Journey into WebSockets Authentication/Authorization.
- WebSocket Security - The WebSocket protocol is a young technology, and brings with it some risks. Decades of experience have taught the web community some best practices around HTTP security, but the security best practices in the WebSocket world aren’t firmly established, and continue to evolve. Nevertheless, some themes have emerged and they are described in this article.
- Cross-Site WebSocket Hijacking - Cross-Site WebSocket Hijacking (CSWSH) - Web Application Security Blog.
- Cross-Site WebSocket Hijacking - Cross-Site WebSocket Hijacking (CSWSH) - Web Application Security Blog.
- Websockets Auth - Journey into WebSockets Authentication/Authorization.
- Testing WebSockets - OWASP Web Security Testing Guide (WSTG), client-side WebSocket testing chapter.
- Cross-site WebSocket hijacking labs - PortSwigger deep-dive on CSWSH with interactive labs.
-
-
Theory
-
Articles & Papers
- An introduction to Websockets - Brief History of Real-Time Web Applications.
- Node.js WebSocket - Finding the right Node.js WebSocket implementation.
- Websockets 101 - Armin Ronacher's Thoughts and Writings (creator of Flask).
- Real-time Apps - Building Real-time Apps with Websockets & Server-Sent Events.
- Real-Time Web by Paul Banks - The State of Real-Time Web in 2016.
- Are WebSockets the future? - WebSockets, caution required!
- MSDN Microsoft Blog - The Dangers of HTML5: WebSockets and Stable Standards.
- Webpush Internet-Draft - Generic Event Delivery Using HTTP Push.
- Full Stack Python - WebSockets on Python.
- Do you really need WebSockets? - WebSockets explanation.
- Be lazy and test your WebSocket APIs with Firecamp - How to test Websocket in a team.
- MSDN Microsoft Blog - The Dangers of HTML5: WebSockets and Stable Standards.
-
Books
- WebSocket - Lightweight Client-Server Communications. Andrew Lombardi.
- The Definitive Guide to HTML5 WebSocket - Build Real-Time Applications with HTML5. By Vanessa Wang, Frank Salim, and Peter Moskovits. Source Code [here](https://github.com/Apress/def-guide-to-html5-websocket).
- High Performance Browser Networking - High Performance
- WebSocket - Lightweight Client-Server Communications. Andrew Lombardi.
- WebSocket - Lightweight Client-Server Communications. Andrew Lombardi.
-
Sites
- WebSocket ORG - The one-stop-shop for all your websocket needs.
- WebSockets MDN - WebSockets Mozilla Developer Network (MDN).
-
Talks
- Initial Steps to Use Websocket-rails - This is the very initial steps to use websocket-rails.
-
Tutorials
- Honeybadger.IO - Building a simple websockets server from scratch in Ruby.
- Engineyard - Getting Started with Ruby and WebSockets.
- David Walsh - WebSocket and Socket.IO.
- Implementing a WebSocket server with Node.js
- Lostmoa - A collection of Django Channels WebSocket tutorials.
- GeniePy - How to set up WebSockets in Starlette
- Engineyard - Getting Started with Ruby and WebSockets.
- Writing WebSocket servers (MDN) - MDN guide to implementing the server side of the WebSocket protocol from scratch.
- Writing WebSocket client applications (MDN) - MDN reference for building browser WebSocket clients.
- WebSocket (javascript.info) - Clear, modern chapter on the browser WebSocket API with runnable examples.
- Using WebSockets on Cloudflare Workers - Official docs and example for handling WebSockets at the edge.
-
-
Tools per Language
-
Agnostic
- Websocketd - WebSockets the UNIX way - Full duplex messaging between web browsers and servers.
- Centrifugo - Scalable real-time messaging in language-agnostic way.
- Websocketd - WebSockets the UNIX way - Full duplex messaging between web browsers and servers.
- Apache-websocket - Apache WebSocket module.
- MinnowServer - A super small and fast embedded HTTP(S) WebSocket server.
- gwsocket - Fast, standalone, language-agnostic WebSocket server RFC6455 compliant.
- SocketCluster - Scalable pub/sub WebSocket framework with support for horizontal scaling across multiple hosts and processes.
-
Ballerina
- Ballerina WebSocket Module - Tailored WebSocket client and server implementations in Ballerina, designed and optimized for seamless integration.
- Ballerina WebSocket Module - Tailored WebSocket client and server implementations in Ballerina, designed and optimized for seamless integration.
-
C
- Libwebsockets - It's a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server.
- facil.io - A server/framework library for web applications, including Websockets and native pub/sub.
- Websocket - Websocket server written in C.
- libuwsc - A Lightweight and fully asynchronous WebSocket client C library based on libubox for Embedded Linux.
- mongoose - Mongoose Embedded Web Server Library - Mongoose is more than an embedded webserver. It is a multi-protocol embedded networking library with functions including TCP, HTTP client and server, WebSocket client and server, MQTT client and broker and much more.
- WebSockets in C - A minimal implementation for embedded applications.
- Wslay - Designed to be embedded in other programs; freedom to choose your own network I/O. Event-based API, as well as synchronous frame-based.
- Libwebsock - C library for easy WebSockets server.
- civetweb - Embedded C/C++ web server with WebSocket client and server support, easy to integrate.
-
C++
- QtWebSockets - The QtWebSockets module is an add-on for the Qt5 library.
- UEWebsocket - Unreal engine 4 websocket plugin for both c++ and blueprint developer.
- Websocketpp - C++ Websocket client/server library.
- Beast - HTTP and WebSocket built on Boost.Asio in C++11.
- µWebSockets - Highly scalable WebSocket server library.
- Simple-WebSocket-Server - A very simple, fast, multithreaded, platform independent WebSocket (WS) and WebSocket Secure (WSS) server and client library implemented using C++11, Boost.Asio and OpenSSL.
- IXWebSocket - Lightweight C++11 multi-threaded client library with TLS support.
- LAppS - LAppS - Lua Application Server for micro-services with default communication over WebSockets.
- libhv - A network library for developing TCP/UDP/SSL/HTTP/WebSocket client/server.
- Crow - Fast and easy-to-use C++ microframework for the web, with WebSocket support.
- Drogon - Fast C++14/17/20 HTTP application framework with built-in WebSocket controllers.
- Oat++ - Light and powerful C++ web framework with async WebSocket support and zero dependencies.
- POCO - C++ libraries for network-centric applications, including HTTP and WebSocket classes.
-
C\#
- ASP.NET SignalR - Incredibly simple real-time web for .NET.
- WebSockets support in ASP.NET Core - This article explains how to get started with WebSockets in ASP.NET Core.
- WebSocketListener - Lightweight and highly scalable asynchronous WebSocket server for .NET/Mono.
- websocket-rpc - WebSocket RPC library for .NET with auto JavaScript client code generation, supporting ASP.NET Core.
- NetGain - A high performance websocket server library powering Stack Overflow.
- websocket-manager - Real-Time library for ASP .NET Core.
- WebSockets - Implementation of the WebSocket protocol, along with client and server integration components.
- WebSockets support in ASP.NET Core - This article explains how to get started with WebSockets in ASP.NET Core.
- unity-websocket-server - A simple, zero-dependency WebSocket server for Unity.
- websocket-sharp - A C# implementation of the WebSocket protocol client and server.
- WebSocketListener - Lightweight and highly scalable asynchronous WebSocket server for .NET/Mono.
- WebSockets support in ASP.NET Core - This article explains how to get started with WebSockets in ASP.NET Core.
- Fleck - Simple C# WebSocket server implementation with no dependencies.
- Ninja.WebSockets - Standalone, high-performance C# WebSocket client and server implementation.
- websocket-client - Reactive, reconnecting WebSocket client for .NET based on System.Net.WebSockets.
-
D
- Arsd:CGI - Uniform server-side API for CGI, FastCGI, SCGI, and HTTP web applications. Offers both lower- and higher- level api options among other common (optional) things like websocket and event source serving support.
- Handy - The simplest HTTP server for your D project.
- Lighttp - Lightweight asynchronous HTTP and WebSocket server library for the D.
- Serverino - Small and ready-to-go http server. Support for websockets included.
- Vibe.d - High-performance asynchronous I/O, concurrency and web application toolkit written in D.
- Websocketd - A websocket server in D.
-
Elixir
- Bandit - Pure-Elixir HTTP and WebSocket server built for Plug and WebSock.
- Phoenix - Productive Elixir web framework with Channels for realtime, scalable WebSocket communication.
- Phoenix LiveView - Rich, realtime server-rendered UIs over WebSockets without writing JavaScript.
- WebSockex - Elixir WebSocket client library built on top of GenServer.
-
Erlang
- Sockjs-erlang - WebSocket emulation - Erlang server.
- Cowboy - Small, fast, modular HTTP server written in Erlang.
- n2o - Erlang web server on websockets.
- Kraken - Distributed Pubsub Server for Realtime Apps.
- Gun - Erlang HTTP/1.1, HTTP/2 and WebSocket client library.
-
Go
- Websocket - Package Websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
- gotify/server - A simple server for sending and receiving messages in real-time per web socket.
- Gorilla Websocket - WebSocket implementation for Go.
- Ws - Tiny WebSocket library for Go.
- 1m-go-websockets - Handling 1M websockets connections in Go.
- nhooyr/websocket - A minimal and idiomatic WebSocket library for Go.
- Centrifuge - Real-time messaging library for Go with scalability in mind.
- GWS - Simple, fast, reliable websocket server & client, supports running over tcp/kcp/unix domain socket.
- Velaros - A lightweight framework with HTTP-style routing, bidirectional messaging, and middleware.
- KubeStellar Console - AI-powered multi-cluster Kubernetes dashboard using WebSockets for real-time cluster communication and live observability streams.
- coder/websocket - A minimal and idiomatic WebSocket library for Go (formerly nhooyr/websocket).
- Fiber WebSocket - WebSocket middleware for the Fiber web framework, built on Fasthttp.
- go-socket.io - Socket.IO library for Go, a realtime application framework.
- greatws - Event-driven WebSocket server able to handle millions of connections with low memory.
- Melody - Minimalist framework for dealing with WebSocket sessions, including broadcasting and message buffering.
- nbio - Non-blocking, event-driven networking framework with high-performance WebSocket support and low memory usage.
-
Haskell
- Websockets - A Haskell library for creating WebSocket-capable servers.
- n2o - Haskell implementation of Erlang's n2o - web server on websockets.
-
Java VM
- Play - The high velocity web framework for Java and Scala.
- Project Tyrus - JSR 356: Java API for WebSocket - Reference Implementation.
- Chord - Library designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async.
- Java-WebSocket - Barebones WebSocket client and server implementation written in 100% Java.
- Atmosphere - Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks.
- Webbit - Java event based WebSocket and HTTP server.
- nv-websocket-client - High-quality WebSocket client implementation in Java which.
- Scarlet - Tinder's Retrofit inspired WebSocket client for Kotlin, Java, and Android
- Finagle-websocket - Finagle Websocket clients and servers.
- Sente - Realtime web comms for Clojure/Script.
- http-kit - Minimalist, high-performance HTTP server and client with async WebSocket support.
- Javalin - Lightweight web framework for Java and Kotlin with simple WebSocket handlers.
- Jetty - Lightweight, embeddable Java web server and servlet container with Jakarta and native WebSocket support.
- Netty - Asynchronous event-driven network framework with full WebSocket codec support.
- Project Tyrus - JSR 356: Java API for WebSocket - Reference Implementation.
- Spring WebSocket - WebSocket and STOMP messaging support built into the Spring Framework.
- Undertow - High-performance web server (WildFly's core) with a dedicated WebSocket API.
- Vert.x - Reactive, polyglot toolkit for the JVM with first-class WebSocket client and server APIs.
- Ktor - JetBrains' Kotlin async framework with built-in WebSocket client and server support.
- OkHttp - HTTP client for the JVM and Android with a robust WebSocket client.
- Apache Pekko HTTP - Streaming WebSocket client and server directives; the Apache-licensed Akka HTTP fork.
- http4s - Typeful, functional, streaming HTTP for Scala with WebSocket support.
- ZIO HTTP - High-performance, functional Scala HTTP library with WebSocket support built on ZIO.
-
Julia
- HTTP.jl - HTTP library for Julia with support on Websockets.
- WebSockets.jl - A WebSockets library for Julia.
-
Node.js
- deepstream.io - Open realtime server a fast, secure and scalable realtime server for mobile, web & iot.
- wspromisify - Makes WebSockets async/await ready with a lot of yummies.
- Nodejs-websocket - Node.js module for websocket server and client.
- WebSocket-Node - WebSocket Implementation for Node.JS (Draft -08 through the final RFC 6455).
- Sockjs-node - WebSocket emulation - Node.js server.
- Ws - `ws`: The fastest cross platform RFC-6455 WebSocket implementation for Node.js.
- websocket-as-promised - Promise-based W3C WebSocket wrapper: allows to use promises when connecting, disconnecting and messaging with WebSocket server.
- faye-websocket-node - Standards-compliant WebSocket client and server.
- ws-wrapper - Lightweight WebSocket wrapper that provides a socket.io-like event-handler API along with Promise-based requests.
- ws-server-wrapper - Companion library for ws-wrapper for the server-side.
-
Programming Languages
Categories
Sub Categories
Keywords
websocket
52
websockets
35
http
24
http-server
18
websocket-server
14
websocket-client
13
http-client
10
nodejs
9
real-time
9
web
8
server
8
http2
8
pubsub
8
async
8
rfc-6455
7
python
7
framework
7
java
6
javascript
6
rust
6
embedded
5
networking
5
high-performance
5
https
5
iot
4
web-framework
4
realtime
4
cpp
4
client
4
webserver
4
web-server
4
go
4
swift
4
asyncio
4
golang
4
ws
4
dlang
3
c
3
mqtt
3
commercial
3
cross-platform
3
proxy-protocol
3
api
3
router
3
tcp
3
udp
3
kotlin
3
rpc
3
sse
3
d
3