metis-rs
metis-rs is a Rust library providing idiomatic bindings to libmetis, a library for graph and mesh partitioning. It is made to be used with Rust version 1.67.0 or above.
Getting Started
Library released on crates.io. To use it, add the following to your Cargo.toml:
[]
= "0.2"
The list of available versions and a change log are available in the CHANGELOG.md file.
Features
Use of Vendored Feature
The vendored feature enables metis-rs to build METIS from source and link to it statically. If not enabled, metis-rs
looks for an existing installation and links to it dynamically.
Use of System-wide Feature
The use-system feature enables metis-rs to use the system-wide installation of METIS. If not enabled, metis-rs will
refer to its own version of METIS.
Please note, vendored and use-system features are mutually exclusive.
Guidance for non-standard METIS installations
If you enabled the use-system feature and METIS is installed in a non-standard location, you must set the following
environment variables:
$METISDIR must point to a directory containing both lib/ and include/ directories with METIS's shared libraries and headers, respectively.
Building the documentation
To build the documentation, especially if METIS is installed in a non-standard location, set the RUSTDOCFLAGS environment variable:
Then the following command will generate and open the documentation:
License
[!IMPORTANT] Our licensing policy applies only to the rust crate
metis-rs, not the original METIS library.For information about METIS' licensing policy, refer to the original library's repository.
metis-rs is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Refer to LICENSE-APACHE and LICENSE-MIT for more details.
Note on the vendored feature
metis-rs comes with its vendored feature enabled by default. With this feature enabled, the original METIS code is compiled and is installed along metis-rs.
Please note that METIS code is always under Apache-2 license.