12个版本 (1个稳定版)
1.0.0 | 2022年11月6日 |
---|---|
0.3.2 | 2022年11月6日 |
0.3.1 |
|
0.2.3 | 2015年4月3日 |
0.1.0 | 2014年11月22日 |
#100 in #已弃用
每月 519 次下载
在 12 个 crate(8个直接)中使用
23KB
425 代码行
LZF - 一个非常小的数据压缩库
已弃用
LibLZF 是一个超级小且快速的压缩库,最初由 Marc Lehmann 编写。它用 C 语言编写,只包含 4 个文件。这是用 Rust 重写的版本。
我没有在 Rust 中重写整个库,而是使用了 Rust 的 Foreign Function Interface 并编写了一个包装器。整个 Rust 代码不到 50 行(是的,测试代码比实现代码多)。虽然我对当前的接口不太满意,但它非常容易使用。
我坐下来尝试理解原始的 C 代码,然后用(主要是)安全的 Rust 代码重写它。 最好的是:它仍然非常快(在某些基本基准测试中几乎与原始代码一样快)。 现在它由大约 200 行代码组成,可能和原始实现差不多。
构建
cargo build --release
用法
fn main() {
let data = "foobar";
let compressed = lzf::compress(data.as_bytes()).unwrap();
let decompressed = lzf::decompress(&compressed, data.len()).unwrap();
}
测试
使用以下命令运行测试
cargo test
使用以下命令运行基准测试
cargo bench
贡献
如果您发现错误或想以其他方式帮助,请 打开一个问题。
这是我发布的第一个 Rust 库,我还在学习。所以如果有人知道更好的 Rust 实现方式,我很乐意听到。