codec_sv2
codec_sv2 provides the message encoding and decoding functionality for the Stratum V2 (Sv2)
protocol, handling secure communication between Sv2 roles. This crate abstracts the complexity of
message encoding/decoding with optional Noise protocol support, ensuring both regular and encrypted
messages can be serialized, transmitted, and decoded consistently and reliably.
Main Components
- Encoder: Encodes Sv2 messages with or without Noise protocol support.
- Decoder: Decodes Sv2 messages with or without Noise protocol support.
- Handshake State: Manages the current Noise protocol handshake state of the codec.
Usage
To include this crate in your project, run:
This crate can be built with the following feature flags:
std: Enable usage of ruststdlibrary, enabled by default.noise_sv2: Enables support for Noise protocol encryption and decryption.with_buffer_pool: Enables buffer pooling for more efficient memory management.
In order to use this crate in a #![no_std] environment, use the --no-default-features to remove the std feature.
Examples
This crate provides two examples demonstrating how to encode and decode Sv2 frames:
-
Unencrypted Example: Encode and decode standard Sv2 frames, detailing the message serialization and transmission process for unencrypted communications.
-
Encrypted Example: Encode and decode Sv2 frames with Noise protocol encryption, detailing the entire encryption handshake and transport phase and serialization and transmission process for encrypted communications.