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

pub use ratchet_core;
pub use ratchet_ext;

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 invalid header was received.

An extension stub that does nothing.

An extension provider stub that will always succeed with NoExt.

A subprotocol registry that is used for negotiating a possible subprotocol to use for a connection.

A structure containing the bits that an extension may set high during a session.

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

The channel is closed

Additional implementation sources:

Denotes the current state of a WebSocket session.

A type of error represented.

HTTP errors.

A received WebSocket frame.

A message type to send.

A data code for a frame.

The type of a payload to send to a peer.

WebSocket protocol errors.

The role of a WebSocket.

Traits

A negotiated WebSocket extension.

A per-message frame decoder.

A per-message frame encoder.

A trait for negotiating an extension during a WebSocket handshake.

A trait for permitting a matched encoder and decoder to be reunited into an extension.

A trait for permitting an extension to be split into its encoder and decoder halves. Allowing for a WebSocket to be split into its sender and receiver halves.

A trait for creating a request from a type.

A stream representing a WebSocket connection.

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.