9 个版本 (4 个重大更新)
0.5.4 | 2022年5月5日 |
---|---|
0.5.3 | 2022年5月5日 |
0.5.1 | 2022年4月28日 |
0.4.0 | 2022年4月25日 |
0.1.0 | 2022年4月20日 |
#773 in 编码
每月30次下载
78KB
2K SLoC
Bende
Bende 是一个由 serde 支持的 rust bencode 编码/解码实现。
关于
这是 rust 可用的少数几个 bencode 实现之一。尽管有替代方案(见下文),实现 bencode 既是乐趣,也是良好的学习经验。另外,多一个替代方案也无妨。
替代方案
- bendy by P3KI。
- serde-bencode by Toby Padilla。
- rust-bencode by Arjan Topolovec。
更多,但有些已不再维护。
用法
将库作为依赖项添加到 Cargo.toml
[dependencies]
bende = "0.5.4"
serde = { version = "1", features = ["derive"] }
示例
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Serialize, Deserialize)]
struct Person {
name: String,
age: u8,
is_employed: bool,
}
let jerry = Person {
name: "Jerry Smith".to_string(),
age: 50,
is_employed: false,
};
let bytes = bende::encode(&jerry).unwrap();
assert_eq!(bende::decode::<Person>(&bytes).unwrap(), jerry);
不支持类型
不支持以下类型
f32
f64
贡献
贡献使开源社区成为一个如此神奇的学习、灵感和创造的地方。您所做出的任何贡献都将被 大力赞赏。
如果您有改进此项目的建议,请克隆仓库并创建一个拉取请求。您也可以简单地打开一个带有“增强”标签的问题。别忘了给项目点个赞!再次感谢!
- 克隆项目
- 创建您的功能分支 (
git checkout -b feature/AmazingFeature
) - 提交您的更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开拉取请求
注意
- 解码器支持两种形式的
Option<_>
(Some和None),但是编码器只支持Some
。 - 键值对象的键必须是字符串,否则将返回错误。
- 在编码之前,Map和struct条目将按其键的字典序排序。
- 如果您在编码/解码原始字节时遇到问题,例如:
&[u8]
或Vec<u8>
,那么请使用这个crate。 - 代码库相对较小(约2000行),易于理解,并充满注释。如果您是初学者,您将会有愉快的时光进行您的第一次贡献。
依赖项
~110–350KB