Our great sponsors
-
async-tungstenite
Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
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.