Crates.io | codec_sv2 |
lib.rs | codec_sv2 |
version | 3.0.1 |
created_at | 2021-06-14 17:27:23.989541+00 |
updated_at | 2025-09-24 23:58:04.917251+00 |
description | Sv2 data format |
homepage | https://stratumprotocol.org |
repository | https://github.com/stratum-mining/stratum |
max_upload_size | |
id | 410020 |
size | 82,992 |
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.
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.
To include this crate in your project, run:
cargo add codec_sv2
This crate can be built with the following feature flags:
std
: Enable usage of rust std
library, 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.
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.