2个不稳定版本
0.1.0 | 2020年8月17日 |
---|---|
0.0.1 | 2015年2月12日 |
303 在 压缩 中排名
每月下载量 10,246
在 41 个crate(直接使用26个) 中使用
77KB
1K SLoC
xz-rs
为Rust提供的流压缩/解压缩库,具有liblzma的绑定。目前它是xz2
crate的别名。有关更多详细信息,请参阅文档。
[dependencies]
xz = "0.1"
xz-rs主要在Apache许可证(版本2.0)和MIT许可证的条款下分发。有关详细信息,请参阅COPYRIGHT。
lib.rs
:
LZMA/XZ编码和解码流
该库是liblzma的绑定,目前提供LZMA和xz编码/解码流。在read
,write
和bufread
模块中提供I/O流(相同类型,不同界限)。通过stream
模块提供原始内存压缩/解压缩,其中包含liblzma中的许多原始API。
示例
use std::io::prelude::*;
use xz::read::{XzEncoder, XzDecoder};
// Round trip some bytes from a byte source, into a compressor, into a
// decompressor, and finally into a vector.
let data = "Hello, World!".as_bytes();
let compressor = XzEncoder::new(data, 9);
let mut decompressor = XzDecoder::new(compressor);
let mut contents = String::new();
decompressor.read_to_string(&mut contents).unwrap();
assert_eq!(contents, "Hello, World!");
异步I/O
此crate可以通过此crate的tokio
功能选择性地支持通过Tokio堆栈的异步I/O流
xz = { version = "0.1", features = ["tokio"] }
所有方法都可以内部处理可能返回ErrorKind::WouldBlock
的流,当它们尚未准备好执行特定操作时。
请注意,在使用这些对象时需要小心。特别是,Tokio运行时要求在删除流之前数据必须完全刷新。为了与阻塞流兼容,所有流在删除时都会刷新/写入,这并不总是进行I/O的合适时间。但是,如果在进行删除之前刷新I/O流,则这些操作将不执行任何操作。
注意
目前,xz
crate是xz2
crate的别名。
依赖关系
~1.5MB
~30K SLoC