45个版本
0.4.15 | 2021年7月22日 |
---|---|
0.4.13 | 2020年1月6日 |
0.4.12 | 2019年10月3日 |
0.4.11 | 2018年9月10日 |
0.4.6 | 2018年7月30日 |
#275 in 编码
79,509 每月下载量
在 44 个crate中使用了 (38 直接)
210KB
4K SLoC
bytecodec
一个用于实现面向字节协议的编码器/解码器的Rust小型框架。
功能
- 适合于面向字节协议
- 增量编码/解码
Encode
和Decode
特性支持增量编码和解码- 在
encode/decode
方法执行过程中消耗的字节数可以完全由调用者控制 - 这一特性使得实现多流复用、传输速率控制和异步I/O变得容易
- 可组合
- 通过组合多个编码器(或解码器),可以轻松构建更复杂的编码器(或解码器)
- 请参阅
EncodeExt
和DecodeExt
特性的示例
- 减少内存复制次数
- 在设计上,只需要进行两次内存复制
- 考虑到解码过程,一次是从实际流(例如TCP套接字)到解码缓冲区的复制,另一次是从缓冲区构建项目的复制。
- 支持某些 serde 实现crate
- 目前支持 serde_json 和 bincode (作为可选特性)
- 请参阅
json_codec
和bincode_codec
模块
- 易于适应同步I/O、异步I/O、UDP等
- 可跟踪的错误
- 通过使用 trackable crate,可以轻松指定错误发生的位置
- 请参阅
EncodeExt::map_err
和DecodeExt::map_err
方法
依赖项
~1.3–3MB
~62K SLoC