Expand description

Async WebSockets.

This crate is based on tungstenite Rust WebSocket library and provides async bindings and wrappers for it, so you can use it with non-blocking/asynchronous TcpStreams from and couple it together with other crates from the async stack. In addition, optional integration with various other crates can be enabled via feature flags

  • async-tls: Enables the async_tls module, which provides integration with the async-tls TLS stack and can be used independent of any async runtime.
  • async-std-runtime: Enables the async_std module, which provides integration with the async-std runtime.
  • async-native-tls: Enables the additional functions in the async_std module to implement TLS via async-native-tls.
  • tokio-runtime: Enables the tokio module, which provides integration with the tokio runtime.
  • tokio-native-tls: Enables the additional functions in the tokio module to implement TLS via tokio-native-tls.
  • tokio-rustls-native-certs: Enables the additional functions in the tokio module to implement TLS via tokio-rustls and uses native system certificates found with rustls-native-certs.
  • tokio-rustls-webpki-roots: Enables the additional functions in the tokio module to implement TLS via tokio-rustls and uses the certificates webpki-roots provides.
  • tokio-openssl: Enables the additional functions in the tokio module to implement TLS via tokio-openssl.
  • gio-runtime: Enables the gio module, which provides integration with the gio runtime.

Each WebSocket stream implements the required Stream and Sink traits, making the socket a stream of WebSocket messages coming in and going out.

Re-exports

Modules

  • async-std integration.
  • async-tls integration.
  • gio integration.
  • Convenience wrapper for streams to switch between plain TCP and TLS at runtime.
  • tokio integration.

Structs

  • A wrapper around an underlying raw stream which implements the WebSocket protocol.

Functions

  • Accepts a new WebSocket connection with the provided stream.
  • The same as accept_async() but the one can specify a websocket configuration. Please refer to accept_async() for more details.
  • Accepts a new WebSocket connection with the provided stream.
  • The same as accept_hdr_async() but the one can specify a websocket configuration. Please refer to accept_hdr_async() for more details.
  • Creates a WebSocket handshake from a request and a stream. For convenience, the user may call this with a url string, a URL, or a Request. Calling with Request allows the user to add a WebSocket protocol or other custom headers.
  • The same as client_async() but the one can specify a websocket configuration. Please refer to client_async() for more details.