17 releases
| 0.7.1 | Nov 17, 2025 |
|---|---|
| 0.7.0 | Feb 4, 2025 |
| 0.6.4 | Sep 7, 2024 |
| 0.6.2 | Jan 30, 2024 |
| 0.1.0 | Mar 23, 2022 |
#76 in WebSocket
2,241 downloads per month
Used in 16 crates
(12 directly)
125KB
2.5K
SLoC
ezsockets
Creating a WebSocket server or a client in Rust can be troublesome. This crate facilitates this process by providing:
- Traits to allow declarative and event-based programming.
- Easy concurrency with Tokio and async/await. Server sessions are Clone'able and can be shared between tasks.
- Heartbeat mechanism to keep the connection alive.
- Automatic reconnection of WebSocket Clients.
- Support for arbitrary client back-ends, with built-in native and WASM client connectors.
- Support for multiple server back-ends such as Axum or Tungstenite.
- TLS support for servers with
rustlsandnative-tls.
Documentation
View the full documentation at docs.rs/ezsockets
Examples
simple-client- a simplest WebSocket client which uses stdin as input.echo-server- server that echoes back every message it receives.echo-server- same asecho-server, but withnative-tls.counter-server- server that increments global value every second and shares it with clientchat-client- chat client forchat-serverandchat-server-axumexampleswasm-client- chat client forchat-serverandchat-server-axumexamples that runs in the browser (only listens to the chat)chat-server- chat server with support of roomschat-server-axum- same as above, but usingaxumas a back-end
Client
By default clients use tokio-tungstenite under the hood. Disable default features and enable wasm_client to run clients on WASM targets.
See examples/simple-client for a simple usage and docs.rs/ezsockets/server for documentation.
Server
WebSocket server can use one of the supported back-ends:
tokio-tungstenite- the simplest way to get started.axum- ergonomic and modular web framework built with Tokio, Tower, and Hyperactix-web- Work in progress at #22
See examples/echo-server for a simple usage and docs.rs/ezsockets/server for documentation.
License
Licensed under MIT.
Contact
Reach me out on Discord gbaranski#5119, or mail me at me@gbaranski.com.
Dependencies
~10–31MB
~373K SLoC