#binary-data #binary-encoding #binary #binary-parser #byte-slice #serializer-deserializer #scroll

无std 字节

一个低级、零拷贝且无panic的二进制序列化和反序列化器。

8个版本

0.2.7 2024年2月7日
0.2.6 2021年4月11日
0.2.4 2019年6月23日
0.2.3 2018年3月2日
0.2.1 2017年6月28日

#1246 in 编码

Download history 388/week @ 2024-03-13 647/week @ 2024-03-20 418/week @ 2024-03-27 474/week @ 2024-04-03 999/week @ 2024-04-10 645/week @ 2024-04-17 556/week @ 2024-04-24 394/week @ 2024-05-01 554/week @ 2024-05-08 949/week @ 2024-05-15 2341/week @ 2024-05-22 2038/week @ 2024-05-29 2066/week @ 2024-06-05 1578/week @ 2024-06-12 1528/week @ 2024-06-19 1923/week @ 2024-06-26

7,446 monthly downloads
用于 15 个crate(8个直接使用)

MIT/Apache

27KB
362

字节

build status crates.io docs.rs

一个低级、零拷贝且无panic的二进制序列化和反序列化器。

文档

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
byte = "0.2"

字节 是一个 无std 库;它可以用于任何 无std 情况或crate。

概述

字节 设计用于以快速和低级的方式编码或解码二进制数据。一个经典的使用案例是I2C通信编码和解码。

字节 提供了两个核心特质 TryReadTryWrite。实现这些特质的类型可以被序列化为字节切片或从字节切片反序列化。

该库旨在简单,而且始终如此。

示例

use byte::*;

let bytes: &[u8] = &[0xde, 0xad, 0xbe, 0xef];

let offset = &mut 0;
let num = bytes.read_with::<u32>(offset, BE).unwrap();
assert_eq!(num, 0xdeadbeef);
assert_eq!(*offset, 4);
use byte::*;
use byte::ctx::{Str, NULL};

let bytes: &[u8] = b"hello, world!\0dump";

let offset = &mut 0;
let str = bytes.read_with::<&str>(offset, Str::Delimiter(NULL)).unwrap();
assert_eq!(str, "hello, world!");
assert_eq!(*offset, 14);

贡献

欢迎所有类型的贡献。

  • 问题。 当您发现错别字、错误或有任何问题时,请随时提交问题。
  • 拉取请求。 新的集合、更好的实现、更多的测试、更多的文档和错别字修正都受到欢迎。

许可

在MIT许可下许可(《LICENSE-MIT》或http://opensource.org/licenses/MIT

无运行时依赖