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 编码
60,523 每月下载量
在 42 个crate中(5个直接) 使用
72KB
1.5K SLoC
thrift_codec
此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