1 个不稳定版本
0.1.0 | 2021 年 1 月 23 日 |
---|
#1866 在 编码
31KB
520 行
统一捆绑器
统一捆绑器是一个库,用于帮助程序将多个源捆绑成一个。这是一个 快速、非常通用且灵活的库。
用法
[dependencies]
ub = "0.1.0"
示例
请参阅 examples/
目录中的简单 CLI 工具。
许可证
此包采用 MIT 许可证,所有贡献也必须如此。
lib.rs
:
这是一个库和二进制包,用于将文件捆绑成一个,就像不压缩的压缩包一样。可以捆绑文件夹并打开捆绑文件。
当前文件结构
MAGIC_NUMBER
- 版本,
version
(u32),大端 u32 信号捆绑的编号。 - 从这里开始是头部,直到文件数据开始之前的部分都是头部的一部分。
- 头部大小,
header_size
(u64):包括这 8 个字节的头部大小(它直接位于版本之后开始) - 路径长度大小,
path_length_bytes
(u8):字节表示路径长度的长度(一个表示路径长度将占用 1 个字节的 1 的大端值) - 文件元数据条目列表
files
(没有定义的长度,这就是头部大小的作用)- 文件大小,
file_size
(u64):文件大小。用于计算文件在文件中的位置。(腐败的弱点,所以也许可以添加file_position
?) - 路径长度,
path_length
(u(path_length_bytes * 8
);deserialize::UintParseType
): 从此处开始的多少字节将提供路径。 - 路径数据,
path
([u8;path_length
]):此文件的路径,用于提取。我计划在文件以相同的字节开始时对这些进行分组,以避免重复(为具有许多文件的文件夹创建一个组,因此单个文件不需要整个路径。)
- 文件大小,