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

#55 in WebSocket

Download history 231/week @ 2025-12-20 223/week @ 2025-12-27 618/week @ 2026-01-03 766/week @ 2026-01-10 348/week @ 2026-01-17 501/week @ 2026-01-24 411/week @ 2026-01-31 810/week @ 2026-02-07 612/week @ 2026-02-14 352/week @ 2026-02-21 197/week @ 2026-02-28 350/week @ 2026-03-07 1385/week @ 2026-03-14 1280/week @ 2026-03-21 1684/week @ 2026-03-28 901/week @ 2026-04-04

5,298 downloads per month
Used in 17 crates (12 directly)

MIT license

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 rustls and native-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 as echo-server, but with native-tls.
  • counter-server - server that increments global value every second and shares it with client
  • chat-client - chat client for chat-server and chat-server-axum examples
  • wasm-client - chat client for chat-server and chat-server-axum examples that runs in the browser (only listens to the chat)
  • chat-server - chat server with support of rooms
  • chat-server-axum - same as above, but using axum as 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 Hyper
  • actix-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

~9–29MB
~349K SLoC