3 个不稳定版本
0.4.0 | 2024年3月27日 |
---|---|
0.3.1 | 2023年11月21日 |
0.3.0 | 2023年2月10日 |
0.2.0 |
|
0.0.0 |
|
#397 在 文件系统
208 每月下载量
27KB
477 行
雪二进制
一个基本的基于头部的二进制文件格式,写入器和读取器。
基本示例
{
let info = SnowBinInfo::default();
let writer = SnowBinWriter::new(info, PATH as PathBuf)?;
writer.write("Header", DATA as &[u8])?;
} // File is flushed when writer.close() is called or when writer is dropped.
{
let reader = SnowBinReader::new()?;
reader.read("Header")?; // Returns data has Vec<u8>
}
二进制格式(由本版本支持)
规范 2
-
默认最大头部大小:8 字节。
-
默认最大数据大小:u64。
-
以 "SNOW_BIN" 为首的 8 字节头部开始。
-
然后是显示雪二进制版本的 8 字节。 (规范版本) (u64)
-
然后是显示最大头部大小的 4 字节。 (至少 8 字节,最大为 u32::MAX 字节) (u32)
-
然后是显示最大数据大小的 1 字节。 (u8::MAX, u16::MAX, u32::MAX, u64::MAX) (u8)
-
然后写入数据
- MAX_HEADER_SIZE 的头部。 (没有冲突的头部名称。写入器或读取器都不会进行检查。)
- MAX_DATA_SIZE 的大小。
- 数据。
- 重复直到 /。
-
以 "SNOW_END" 为结束的 MAX_HEADER_SIZE 头部。
-
32 字节验证哈希。 (使用 blake3)
依赖项
~1.5MB
~39K SLoC