Uses old Rust 2015
|0.3.0||Aug 18, 2022|
|0.3.0-alpha.3||Nov 7, 2021|
|0.3.0-alpha.1||Oct 22, 2021|
|0.2.1||Sep 7, 2020|
|0.0.6||Dec 21, 2014|
#163 in No standard library
18,388 downloads per month
Used in 5 crates (2 directly)
magic-sys is available on crates.io so you can use it like this (in your
[dependencies] magic-sys = "0.3"
rustdoc is available on docs.rs.
This crate requires the
libmagic C library in version 5.
You need to specify your
libmagic version by activating the matching
Each API version has a crate feature like "v5-38" (v5.38 is also the default), see Cargo.toml
If you use a different version of
libmagic, adjust your configuration:
[dependencies.magic-sys] version = "0.3" default-features = false features = ["v5-41"]
Note that those version features are additive, so "v5-41" implies "v5-40" and other previous versions.
libmagic needs to be installed in a standard location (also see issue #1).
On a Debian based Linux system this can be achieved like this:
sudo apt-get install libmagic1 libmagic-dev
On RHEL/Cent OS, Gentoo and others you will need to install the
On Mac OS X you can use Homebrew:
brew install libmagic
Feedback for Windows (issue #2) support is appreciated!
cargo install cargo-vcpkg cargo vcpkg build
Afterwards, you can
cargo build etc. your crate as usual.
The Minimum Supported Rust Version (MSRV) is Rust 1.38 or higher.
This version might be changed in the future, but it will be done with a crate version bump.
libmagic will be searched in the system library paths. If you need to use a different library or are cross-compiling, you can set the
MAGIC_STATIC environment variables.
rustc where to find
libmagic.a. Can have a target-specific prefix like
Controls static linking with
libmagic. Enabled automatically if there's only a
libmagic.a in the (provided) search path or if explicitly enabled like
MAGIC_STATIC=true. Can have a target-specific prefix like
MAGIC_STATIC=false can be used to choose to link
If unset but both libraries are available, the build will bail out with an error and you have to set one option explicitly.
vcpkg integration has its own set of environment variables, see
vcpkg crate docs.
If you do not use
cargo vcpkg build, you will have to either
vcpkg install libmagicand set the environment variables for your
vcpkg integrate installyour
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.