Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation
You can also mix them a bit. The library tungstenite is implemented like this, and allows async-tungstenite to reuse the same logic but in a non-blocking manner. You have the API of the second option, but if a write call returns WouldBlock, you return to the caller and allow them to continue when the buffer is flushed. This can get complicated saving state though (e.g. whether it's currently doing authentication, uploading a file, etc.), but see my note below about Rust's async/await.
Web api benchmarking: Rust (tide) vs Rust (actix-web)
1 project | reddit.com/r/rust | 23 Jan 2022
Announcing axum 0.3
5 projects | reddit.com/r/rust | 2 Nov 2021
coindesk: a Free Bitcoin Price Index API Client in Rust
2 projects | reddit.com/r/rust | 5 May 2021
JS faster than Rust?
3 projects | reddit.com/r/rust | 24 Feb 2021
Let's Markdown: A self-hosted, open source collaborative markdown editor
4 projects | reddit.com/r/selfhosted | 14 May 2022