#bundle #package #file-format #file-path #byte-length #filesize

ub

可以将多个源捆绑成一个,并可以提取回来

1 个不稳定版本

0.1.0 2021 年 1 月 23 日

#1866编码

MIT 许可证

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]):此文件的路径,用于提取。我计划在文件以相同的字节开始时对这些进行分组,以避免重复(为具有许多文件的文件夹创建一个组,因此单个文件不需要整个路径。)

无运行时依赖项