15个版本
使用旧Rust 2015
| 0.3.0 | 2022年8月18日 | 
|---|---|
| 0.3.0-alpha.3 | 2021年11月7日 | 
| 0.3.0-alpha.1 | 2021年10月22日 | 
| 0.2.1 | 2020年9月7日 | 
| 0.0.6 | 2014年12月21日 | 
209 在 无标准库 中排名 #209
9,452 每月下载量
用于 10 个crate (直接使用 2 个)
20KB
336 代码行
rust-magic-sys  
  
 
这个 cargo -sys 包 为例如 magic 绑定 提供了 libmagic 声明。
使用方法
magic-sys 在crates.io上可用,因此您可以使用如下方式(在您的 Cargo.toml 中)
[dependencies]
magic-sys = "0.3"
rustdoc 可在 docs.rs 上找到。
要求
此crate需要版本为5的 libmagic C库。
您需要通过激活匹配的 magic-sys 功能来指定您的 libmagic 版本。
每个API版本都有一个crate功能,例如 "v5-38"(v5.38也是默认版本),见 Cargo.toml
如果您使用的是不同的 libmagic 版本,请调整您的配置
[dependencies.magic-sys]
version = "0.3"
default-features = false
features = ["v5-41"]
请注意,这些版本功能是累加的,因此 "v5-41" 包含 "v5-40" 和其他先前版本。
libmagic 需要安装在一个标准位置(也请参阅 问题 #1)。
在基于Debian的Linux系统上,可以通过以下方式实现
sudo apt-get install libmagic1 libmagic-dev
在RHEL/Cent OS、Gentoo和其他操作系统上,您需要安装file包。
在Mac OS X上,您可以使用Homebrew
brew install libmagic
感谢对Windows的支持反馈(问题#2)!
您可以通过vcpkg和vcpkg-rs以及cargo-vcpkg使用微软的vcpkg。如果您选择后者,这意味着您将需要
cargo install cargo-vcpkg
cargo vcpkg build
之后,您可以像往常一样使用cargo build等命令构建您的crate。
MSRV
最低支持Rust版本(MSRV)为Rust 1.38或更高。
此版本可能在未来发生变化,但将会通过crate版本升级来完成。
构建
默认情况下,libmagic将在系统库路径中搜索。如果您需要使用不同的库或进行交叉编译,您可以设置MAGIC_DIR和MAGIC_STATIC环境变量。
MAGIC_DIR,<TARGET>_MAGIC_DIR
告诉rustc在哪里找到libmagic.so / libmagic.a。可以有一个针对特定目标的词缀,例如X86_64_UNKNOWN_LINUX_MUSL_MAGIC_DIR
MAGIC_STATIC,<TARGET>_MAGIC_STATIC
控制与libmagic的静态链接。如果(提供的)搜索路径中只有一个libmagic.a或者在显式启用的情况下(如MAGIC_STATIC=true),则会自动启用。可以有一个针对特定目标的词缀,例如X86_64_UNKNOWN_LINUX_MUSL_MAGIC_STATIC
类似地,可以使用MAGIC_STATIC=false来选择动态链接libmagic。如果未设置但两个库都可用,构建将因错误而中断,并且您必须显式设置一个选项。
vcpkg
可选的vcpkg集成有其自己的环境变量集,请参阅vcpkg crate文档。如果您不使用cargo vcpkg build,您将必须
- 使用vcpkg install libmagic并设置您的vcpkg根目录的环境变量
- 使用vcpkg integrate install安装您的vcpkg根用户
许可
根据您的选择,许可协议为以下之一
- Apache License,版本2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或https://open-source.org.cn/licenses/MIT)
。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在工作中的贡献,应按上述方式双重授权,不附加任何额外条款或条件。
依赖项
~64KB