#codec #decoder #encoder #byte #decode #serialization #async-io

bytecodec

一个用于实现面向字节协议的编码器/解码器的小型框架

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 编码

Download history 16042/week @ 2024-04-23 12688/week @ 2024-04-30 15012/week @ 2024-05-07 14915/week @ 2024-05-14 12667/week @ 2024-05-21 12501/week @ 2024-05-28 14049/week @ 2024-06-04 17324/week @ 2024-06-11 15707/week @ 2024-06-18 17996/week @ 2024-06-25 17633/week @ 2024-07-02 19389/week @ 2024-07-09 18444/week @ 2024-07-16 21004/week @ 2024-07-23 16838/week @ 2024-07-30 20675/week @ 2024-08-06

79,509 每月下载量
44 个crate中使用了 (38 直接)

MIT 协议

210KB
4K SLoC

bytecodec

bytecodec Documentation Actions Status Coverage Status License: MIT

一个用于实现面向字节协议的编码器/解码器的Rust小型框架。

文档

功能

  • 适合于面向字节协议
  • 增量编码/解码
    • EncodeDecode 特性支持增量编码和解码
    • encode/decode 方法执行过程中消耗的字节数可以完全由调用者控制
    • 这一特性使得实现多流复用、传输速率控制和异步I/O变得容易
  • 可组合
    • 通过组合多个编码器(或解码器),可以轻松构建更复杂的编码器(或解码器)
    • 请参阅 EncodeExtDecodeExt 特性的示例
  • 减少内存复制次数
    • 在设计上,只需要进行两次内存复制
    • 考虑到解码过程,一次是从实际流(例如TCP套接字)到解码缓冲区的复制,另一次是从缓冲区构建项目的复制。
  • 支持某些 serde 实现crate
    • 目前支持 serde_jsonbincode (作为可选特性)
    • 请参阅 json_codecbincode_codec 模块
  • 易于适应同步I/O、异步I/O、UDP等
  • 可跟踪的错误
    • 通过使用 trackable crate,可以轻松指定错误发生的位置
    • 请参阅 EncodeExt::map_errDecodeExt::map_err 方法

依赖项

~1.3–3MB
~62K SLoC