#binary-data #binary-format #binary #binary-file #data-stream #read-write #read

binary_modifier

binary_modifier是一个简单的库,用于读取和写入缓冲区

2个不稳定版本

0.3.3 2023年8月28日
0.3.2 2023年8月28日
0.2.1 2023年8月28日

#2871解析器实现

MIT 许可证

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