#解压缩 #xnb #lzx

lzxd

Microsoft LZXD压缩格式的解压缩实现

11个版本

0.2.5 2023年12月27日
0.2.4 2023年12月26日
0.2.1 2023年11月21日
0.1.4 2021年10月10日
0.1.0 2020年7月13日

#73 in 压缩

Download history 9391/week @ 2024-04-09 8644/week @ 2024-04-16 10078/week @ 2024-04-23 9274/week @ 2024-04-30 11487/week @ 2024-05-07 9213/week @ 2024-05-14 10028/week @ 2024-05-21 11347/week @ 2024-05-28 10174/week @ 2024-06-04 9461/week @ 2024-06-11 8326/week @ 2024-06-18 11022/week @ 2024-06-25 8887/week @ 2024-07-02 10959/week @ 2024-07-09 13034/week @ 2024-07-16 14800/week @ 2024-07-23

49,334 每月下载量
28 个crate中(通过 cab)使用

MIT/Apache

69KB
1K SLoC

lzxd

基于Microsoft的lzxd编码实现,基于文档本身的描述和代码。这个crate目前只实现了解压缩。

use lzxd::{Lzxd, WindowSize};

let mut lzxd = Lzxd::new(WindowSize::KB64);

while let Some(chunk) = get_compressed_chunk() {
    let decompressed = lzxd.decompress_next(&chunk);
    write_data(decompressed.unwrap());
}

项目的动机是能够读取由XNA Game Studio生成的XNB文件,其中一些文件使用了LZXD压缩。

非常感谢LeonBlade的xnbcli项目,该项目极大地帮助调试了这个实现,并特别感谢dorkbox的CabParser,它进一步帮助验证了这个实现能够正确地解压缩实际数据。

许可证

此库根据您的选择许可如下:

无运行时依赖