7 个版本 (3 个稳定版)
新版本 2.0.0 | 2024年8月9日 |
---|---|
1.1.0 | 2024年5月23日 |
1.0.0 | 2024年3月22日 |
0.1.6 | 2024年2月15日 |
0.1.0 | 2021年6月14日 |
#1715 在 魔法豆
297 次每月下载
在 10 个crate(4个直接)中使用
74KB
1.5K SLoC
SV2 协议是二进制的,具有固定消息封装。每个消息以扩展类型、消息类型和消息长度(共六字节)开始,之后是可变长度的消息。
此crate提供了封装 SV2 二进制消息的原始功能。
以下概述了消息封装(根据 SV2 规范)
协议类型 | 字节长度 | 描述 |
---|---|---|
extension_type |
U16 |
描述此协议消息的唯一标识符。 最高位(即位 15, |
msg_type |
U8 |
描述此协议消息的唯一标识符。 |
msg_length |
U24 |
协议消息的长度,不包括此头部。 |
payload |
BYTES |
长度为 msg_length 的消息特定负载。如果 extension_type (channel_msg 位)中的最高位设置,则前四个字节定义为 U32 ""channel_id"" ,尽管这个定义在下面的消息定义中重复,但这些4个字节包含在 msg_length 中。 |
特性
可以使用以下特性构建此包
with_serde
:使用基于serde
的编码和解码构建binary_sv2
和buffer_sv2
包。with_buffer_pool
:使用buffer_sv2
为non_std
环境提供更有效的分配方法。请参阅buffer_sv2
包文档以获取更多上下文。
with_serde
功能标志仅用于消息生成器,对于任何其他类型的用法已弃用。它可能在未来完全弃用。
依赖项
~8MB
~102K SLoC