2个不稳定版本
0.3.3 | 2023年8月28日 |
---|---|
0.3.2 |
|
0.2.1 | 2023年8月28日 |
#2871 在 解析器实现
20KB
347 行
BinaryModifier
BinaryModifier是一个专为简化与二进制数据流工作而设计的Rust库。它提供了一套工具,用于以二进制格式读取和写入各种数据类型,处理字节序,在流中定位,等等。这个crate在处理诸如解析二进制文件格式或实现网络协议等任务时特别有用。
功能
- 以二进制格式读取和写入原始数据类型,如整数、浮点数、字符等。
- 从和到二进制流读取和写入长度前缀字符串。
- 在流中定位到特定位置。
- 在读取和写入过程中处理字节序交换。
- 支持基于目标架构的不同数据类型和转换。
使用方法
Binary Modifier crate围绕两个主要结构体:BinaryReader 和 BinaryWriter。这两个结构体都与底层的 MemoryStream 交互,它抽象了一个字节数组缓冲区,用于有效地在内存中操作二进制数据。
BinaryReader
BinaryReader 结构体用于从二进制流中读取数据
从流中读取整数的示例
use binary_modifier::{BinaryReader, Endian};
let data = vec![0x01, 0x02, 0x03, 0x04];
let mut reader = BinaryReader::new_vec(&mut data, Endian::Big);
let value: i32 = reader.read_i32().unwrap();
println!("Read integer: {}", value);
BinaryWriter
BinaryWriter 结构体用于向二进制流中写入数据。
向流中写入字符串的示例
use binary_modifier::{BinaryWriter, Endian};
let mut data = Vec::new();
let mut writer = BinaryWriter::new_vec(&mut data, Endian::Little);
let text = "Hello, Binary!";
writer.write_string(text).unwrap();
println!("Data written: {:?}", data);
使用方法
要在您的Rust项目中使用Binary Modifier crate,请在Cargo.toml文件中添加以下依赖项
binary_modifier = "0.2.1"
或者使用cargo安装它
cargo add binary_modifier
许可证
此crate采用MIT许可证。
如果您遇到任何问题或有改进建议,请随时在GitHub上贡献或报告问题。
依赖项
~0.4–1MB
~21K SLoC