#archive-format #extension #lha #lzh #unlha

无 std delharc

用于解析和提取 LHA/LZH 归档文件的库

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 压缩

Download history 276/week @ 2024-04-30 108/week @ 2024-05-07 239/week @ 2024-05-14 110/week @ 2024-05-21 47/week @ 2024-05-28 108/week @ 2024-06-04 142/week @ 2024-06-11 88/week @ 2024-06-18 199/week @ 2024-06-25 468/week @ 2024-07-02 292/week @ 2024-07-09 419/week @ 2024-07-16 267/week @ 2024-07-23 398/week @ 2024-07-30 159/week @ 2024-08-06 93/week @ 2024-08-13

1,139 每月下载量
用于 5 包(4 个直接使用)

MIT/Apache

165KB
3.5K SLoC

delharc

Crate Docs Build Status Coverage Status Minimum rustc version

一个用于解析和提取 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::Errorio::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 或更高。

许可证

本项目根据您的选择采用以下任一许可证:

依赖项

~1.1–6.5MB
~30K SLoC