Crate ratchet_rs

source
Expand description

A fully asynchronous implementation of RFC6455 (The WebSocket protocol). Complete with an optional implementation of RFC7692 (Compression Extensions For WebSocket).

§Features

  • Implement your own own extensions using ratchet_ext.
  • Per-message deflate with ratchet_deflate or enable with the deflate feature.
  • Split WebSocket with the split feature.

§Error handling

Ratchet is strict over its implementation of The WebSocket protocol and as such any errors in a session may result in the closure of the session when performing a send or receive operation; it is possible to perform a liveliness check on a WebSocket by invoking the is_closed function. If an error is encountered, then an attempt to close the session cleanly is performed and an error is returned so it is clear that the connection may have been closed.

Possible errors that may be encountered during an upgraded session are protocol violations by the peer or an IO error.

Re-exports§

Structs§

  • A reason for closing the WebSocket connection.
  • The errors that may occur during a WebSocket connection.
  • A frame’s header.
  • Represents a parsed header.
  • A set of HTTP headers
  • Represents an HTTP header field value.
  • An extension stub that does nothing.
  • An extension provider stub that will always succeed with NoExt.
  • A structure containing the bits that an extension may set high during a session.
  • A subprotocol registry that is used for negotiating a possible subprotocol to use for a connection.
  • A structure representing an upgraded WebSocket session and an optional subprotocol that was negotiated during the upgrade.
  • A structure representing an upgraded WebSocket session and an optional subprotocol that was negotiated during the upgrade.
  • An upgraded WebSocket stream.
  • A builder to construct WebSocket clients.
  • A configuration for building a WebSocket.
  • A response to send to a client if the connection will not be upgraded.
  • A builder to construct WebSocket servers.
  • Represents a client connection that has been accepted and the upgrade request validated. This may be used to validate the request by a user and opt to either continue the upgrade or reject the connection - such as if the target path does not exist.

Enums§

Traits§

Functions§

  • Execute a server handshake on the provided stream.
  • Execute a server handshake on the provided stream. An attempt will be made to negotiate the extension and subprotocols provided.
  • Execute a WebSocket client handshake on stream, opting for no compression on messages and no subprotocol.
  • Execute a WebSocket client handshake on stream, attempting to negotiate the extension and a subprotocol.