#thrift #codec #protocols #binary-encoding #message #compact #binaries

thrift_codec

根据thrift协议指定的二进制编码/解码的库

6个版本

0.3.2 2024年6月11日
0.3.1 2024年1月16日
0.2.0 2022年4月6日
0.1.1 2017年10月19日

#364 in 编码

Download history 11306/week @ 2024-05-01 9986/week @ 2024-05-08 10401/week @ 2024-05-15 11936/week @ 2024-05-22 10987/week @ 2024-05-29 10556/week @ 2024-06-05 11548/week @ 2024-06-12 12631/week @ 2024-06-19 12729/week @ 2024-06-26 11631/week @ 2024-07-03 13074/week @ 2024-07-10 14173/week @ 2024-07-17 14709/week @ 2024-07-24 17024/week @ 2024-07-31 14165/week @ 2024-08-07 11586/week @ 2024-08-14

60,523 每月下载量
42 个crate中(5个直接) 使用

MIT 许可证

72KB
1.5K SLoC

thrift_codec

thrift_codec Documentation Actions Status License: MIT

此crate提供了对Thrift协议的编码/解码功能。

文档

参考文献

示例

编码一条消息

use thrift_codec::CompactEncode;
use thrift_codec::data::Struct;
use thrift_codec::message::Message;

let message = Message::oneway("foo_method", 1, Struct::from(("arg1", 2)));
let mut buf = Vec::new();
message.compact_encode(&mut buf).unwrap();
assert_eq!(
    buf,
    [130, 129, 1, 10, 102, 111, 111, 95, 109, 101, 116,
    104, 111, 100, 24, 4, 97, 114, 103, 49, 21, 4, 0]
);

解码上述二进制数据

use thrift_codec::CompactDecode;
use thrift_codec::data::Struct;
use thrift_codec::message::Message;

let bytes = [
    130, 129, 1, 10, 102, 111, 111, 95, 109, 101, 116,
    104, 111, 100, 24, 4, 97, 114, 103, 49, 21, 4, 0
];

let message = Message::compact_decode(&mut &bytes[..]).unwrap();
let expected = Message::oneway("foo_method", 1, Struct::from(("arg1", 2)));
assert_eq!(message, expected);

依赖项

~1.5MB
~40K SLoC