#buffer #binary #better #b3 #type #item-key

nightly no-std b3-rs

B3 (Better Binary Buffers)的Rust实现

4个版本

0.1.0 2020年7月6日
0.1.0-alpha.22020年7月5日
0.0.0 2020年7月3日

1926 in 编码

MIT 许可证

60KB
1.5K SLoC

b3-rs

B3 (Better Binary Buffers)的Rust实现。

这个库处于非常早期的开发阶段!直到我们达到v1.0.0,我们无法保证API的稳定性。

这个库的部分功能基于原始的Python B3实现。

用法

use b3_rs::{Item, ItemKey, ItemValue};

// Creating an item for a simple type
let string_item = Item::from("item value").with_key(ItemKey::from("item key"));
let integer_item = Item::from(123456u64).with_key(ItemKey::from(0u64));

// Creating an item collection
let dict_item = Item::new(
    ItemKey::NoKey,
    ItemValue::CompositeDict(
        vec![string_item, integer_item]
    ),
);

// Encoding items into the wire format
let encoded = dict_item.encode()?;

// Decoding items from the wire format
let (decoded, byte_count) = Item::decode(&encoded)?;
assert_eq!(byte_count, encoded.len());
assert_eq!(dict_item, decoded);

注意事项

未实现的项目类型

以下项目类型目前尚未实现

  • Decimal (类型 10)
  • Sched (类型 13)
  • Complex (类型 16)

当消息包含这些类型之一时,将返回错误b3_rs::Error::UnimplementedB3TypeError

参考

许可证

本项目中的代码遵循MIT许可证。有关更多信息,请参阅仓库根目录下的LICENSE文件。

依赖

~67KB