10 unstable releases (4 breaking)
new 0.5.1 | Mar 17, 2023 |
---|---|
0.5.0 | Mar 17, 2023 |
0.4.4 | Mar 17, 2023 |
0.4.0 | Nov 29, 2022 |
0.1.0 | Mar 23, 2022 |
#25 in WebSocket
590 downloads per month
63KB
1K
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 Client.
- Support for multiple back-ends such as Axum or Tungstenite.
- TLS support for servers with
rustls
andnative-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-server
andchat-server-axum
exampleschat-server
- chat server with support of roomschat-server-axum
- same as above, but usingaxum
as a back-end
Client
tokio-tungstenite
is being used under the hood.
See examples/simple-client for a simple usage and docs.rs/ezsockets/server for documentation.
Server
WebSocket server can use one of 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.
Dependencies
~6–14MB
~288K SLoC