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://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在工作中的贡献,应按上述方式双重授权,不附加任何额外条款或条件。
依赖项
~64KB