Crate ratchet_ext

source ·
Expand description

A library for writing extensions for Ratchet.




Implementing an extension requires two traits to be implemented: ExtensionProvider for negotiating the extension during the WebSocket handshake, and Extension (along with its bounds) for using the extension during the session.

§Splitting an extension

If a WebSocket is to be split into its sending and receiving halves then the extension must implement the SplittableExtension trait and if it is to be reunited then it must implement the ReunitableExtension. This allows more fine-grained control over the BiLock within the receiver.


  • A frame’s header.
  • Represents a parsed header.
  • A set of HTTP headers
  • Represents an HTTP header field value.
  • A structure containing the bits that an extension may set high during a session.


  • A data code for a frame.


  • 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.