Skip to content

Commit

Permalink
Update README to include performance note
Browse files Browse the repository at this point in the history
  • Loading branch information
daniel-abramov committed May 15, 2023
1 parent 966bc5d commit 1d4ddd2
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,16 @@ can use it with non-blocking/asynchronous `TcpStream`s from and couple it togeth
## Features

As with [`tungstenite-rs`](https://github.com/snapview/tungstenite-rs) TLS is supported on all platforms using [`native-tls`](https://github.com/sfackler/rust-native-tls) or [`rustls`](https://github.com/ctz/rustls) through feature flags: `native-tls`, `rustls-tls-native-roots` or `rustls-tls-webpki-roots` feature flags. Neither is enabled by default. See the `Cargo.toml` for more information. If you require support for secure WebSockets (`wss://`) enable one of them.

## Is it performant?

In essence, `tokio-tungstenite` is a wrapper for `tungstenite`, so the performance is capped by the performance of `tungstenite`. `tungstenite`
has a decent performance, but it's definitely not the fastest WebSocket library in the world at the moment of writing this note.

In majority of the cases the provided performance is more than enough (both `tungstenite` and `tokio-tungstenite` have been used in production
scenarios for web real-time communication), however if performance is of a paramount importance for you (especially if you send **large messages**),
then you might want to check other libraries that are performance focused or you could file a PR against `tungstenite` to improve the performance!

We are aware of changes that both `tungstenite` and `tokio-tungstenite` need in order to fill that gap of ~30% performance difference between `tungstenite`
and more performant libraries like `fastbwebsockets`, but we have not worked on that yet as it was not required for the original use case for which `tungstenite`
was designed. That being said, performance improvements are welcome. For a quick summary of the performance problems, see [this comment](https://github.com/snapview/tungstenite-rs/issues/352).

0 comments on commit 1d4ddd2

Please sign in to comment.