9 个版本 (5 个破坏性更新)
0.6.1 | 2024 年 5 月 1 日 |
---|---|
0.6.0 | 2024 年 3 月 1 日 |
0.5.0 | 2023 年 7 月 13 日 |
0.4.0 | 2021 年 10 月 4 日 |
0.1.0 | 2020 年 7 月 5 日 |
#56 in 压缩
1,139 每月下载量
用于 5 个 包(4 个直接使用)
165KB
3.5K SLoC
delharc
一个用于解析和提取 LHA/LZH 归档内容的 Rust 库。
功能描述
此库提供了解析 LHA 头部内容的方法,并允许读取使用归档格式中的一些方法压缩的文件。
使用此格式的文件通常具有 .lzh
或 .lha
扩展名。一些格式,如复古芯片调音 YM 格式,使用 LHA 作为其默认打包方法。整个 Aminet 的内容也使用此格式打包。
不做什么
此库不提供从提取的归档中创建文件或目录的高级方法。
用法
添加到 Cargo.toml
[dependencies]
delharc = "0.6"
有关更多信息,请参阅 文档。
无 std
从版本 0.6 开始,delharc
可在不使用 std
库的情况下使用。在这种情况下,需要 alloc
外部包。
[dependencies.delharc]
version = "0.6"
default-features = false
features = ["lh1", "lz"] # select desired features
delharc
API 最初是围绕 std::io
类型构建的,例如 io::Error
和 io::Read
。
这个设计选择使得在不修改实现的情况下,无法将 delharc
应用于缺少 std::io
库的情况。
为了解决这个问题,添加了 stub_io
模块和 error
模块。 stub_io
包含一个 I/O 代理特质 Read
和一个 Take
类型,现在它们作为库中泛型类型的接口使用。而不是依赖于 io::Error
的可失败结果,delharc
定义了自己的 error::LhaError
,它封装了一个 I/O 错误类型。
启用 std
库后,error::LhaError
通过 From
特性和 stub_io::Read
转换为 io::Error
,并为所有实现 io::Read
的类型实现了 stub_io::Read
。
对于 std
用户来说,与之前版本的差异在于,之前返回 io::Result
的方法现在返回 Result<_, LhaError<io::Error>>
。这可能会破坏在未进行 ?
或 From
转换的情况下直接返回 Err(error)
结果的调用 delharc
方法的情况。
现在,当使用 default-features = false
时,需要将 std
功能与其他压缩方法功能一起添加回来。
Rust 版本
delharc
由于本版本中稳定的 array::from_fn
函数,需要 Rustc 版本 1.63 或更高。
许可证
本项目根据您的选择采用以下任一许可证:
- MIT 许可证(《LICENSE-MIT》或 https://opensource.org/licenses/MIT)
- Apache 许可证,版本 2.0(《LICENSE-APACHE》或 https://apache.ac.cn/licenses/LICENSE-2.0)
。
依赖项
~1.1–6.5MB
~30K SLoC