1个不稳定版本
0.2.0 | 2024年2月16日 |
---|
#407 在 压缩
58KB
1.5K SLoC
lz4-java-wrc
这是一个接受写入器作为指针而不是消耗它的 lz4jb
的分支。
一个流式压缩/解压缩库,实现了来自 lz4-java 的 LZ4BlockOutputStream
格式。
注意:此格式与标准的 LZ4 Block格式 不兼容。Minecraft 1.20.5 lz4块压缩格式是一个使用此格式的例子。
此仓库包含
lz4_java_wrc
:一个实现Read
和Write
特性的库,
用法
将其添加到您的 Cargo.toml 中
[dependencies]
lz4-java-wrc = "0.2.0"
压缩
Lz4BlockOutput
是围绕实现 Write
特性的类型的包装。
use lz4_java_wrc::Lz4BlockOutput;
use std::io::Write;
fn main() -> std::io::Result<()> {
let mut output = Vec::new(); // Vec<u8> implements the Write trait
Lz4BlockOutput::new(&mut output, 64)?
.write_all("...".as_bytes())?;
println!("{:?}", output);
Ok(())
}
解压缩
Lz4BlockInput
是围绕实现 Read
特性的类型的包装。
use lz4_java_wrc::Lz4BlockInput;
use std::io::Read;
const D: [u8; 24] = [
76, 90, 52, 66, 108, 111, 99, 107, 16, 3, 0, 0, 0, 3, 0, 0, 0, 82, 228, 119, 6, 46, 46, 46,
];
fn main() -> std::io::Result<()> {
let mut output = String::new();
Lz4BlockInput::new(&D[..]) // &[u8] implements the Read trait
.read_to_string(&mut output)?;
println!("{}", output);
Ok(())
}
许可证
查看 LICENSE 文件。
依赖项
~140–490KB