2个版本

0.1.1 2021年5月8日
0.1.0 2020年10月30日

#377 in 压缩


用于 2 crates

MIT 许可证

26KB
532

lzham

基于底层lzham-syscrate的lzham编解码器的高级Rust绑定。

要构建此crate,您必须安装cmake和C++编译器,因为lzham-syscrate会构建lzham库,并不会搜索预构建的库。

使用方法

将以下内容添加到您的Cargo.toml

[dependencies]
lzham = "0.1.1"

示例

use lzham::{compress, decompress};
let data = String::from("This is a test.");

let mut comp = Vec::new();
let status = compress(&mut data.as_bytes(), &mut comp);

assert!(status.is_success());

let mut decomp = Vec::new();
let status = decompress(&mut comp.as_slice(), &mut decomp, data.len());

assert!(status.is_success());

链接

lzham支持静态和动态链接。要静态链接,您可以将环境变量LIBLZHAM_STATICLZHAM_STATIC设置为true,或者使用static特性。

要动态链接,使用dynamic特性。

如果您没有设置任何环境变量或使用任何特性,构建将根据操作系统或目标采用预期的默认库链接方法。对于Windows、macOS和musl的Linux,将是static。对于没有musl的Linux,将是dynamic

请注意,环境变量优先于特性。在出现任何歧义的情况下,它将使用默认的链接方法。

特性

此crate有以下两个特性

  • static:静态链接到库
  • dynamic:动态链接到库

这些设置适当的lzham-sys特性,该特性负责构建和链接库。

许可证

lzham可在MIT许可证下使用。有关详细信息,请参阅LICENSE

依赖

~1–1.3MB
~31K SLoC