11 releases

new 0.7.1 May 1, 2025
0.7.0 Apr 3, 2025
0.1.8 Mar 27, 2025
0.1.6 Feb 19, 2025
0.1.0 Apr 30, 2024

#2426 in Algorithms

Download history 12/week @ 2025-01-11 12/week @ 2025-02-01 10/week @ 2025-02-08 146/week @ 2025-02-15 32/week @ 2025-02-22 15/week @ 2025-03-01 31/week @ 2025-03-08 27/week @ 2025-03-15 237/week @ 2025-03-22 149/week @ 2025-03-29 65/week @ 2025-04-05 16/week @ 2025-04-12 5/week @ 2025-04-19 58/week @ 2025-04-26

182 downloads per month

MIT license

1MB
21K SLoC

crates.io docs.rs License

rustsat-ipasir - IPASIR Bindings for RustSAT

IPASIR is a general incremental interface for SAT solvers. This crate provides bindings for this API to be used with the RustSAT library.

Note: This crate only provides bindings to the API, linking to a IPASIR library needs to be set up by the user. This is intentional to allow easy integration of solvers that we do not provide a specialized crate for. For a plug-and-play experience see the other RustSAT solver crates.

Linking

Linking to a IPASIR library can be done by adding something like the following to your projects build script (build.rs).

// Link to custom IPASIR solver
// Modify this for linking to your static library
// The name of the library should be _without_ the prefix 'lib' and the suffix '.a'
println!("cargo:rustc-link-lib=static=<path-to-your-static-lib>");
println!("cargo:rustc-link-search=<name-of-your-static-lib>");
// If your IPASIR solver links to the C++ stdlib, the next four lines are required
#[cfg(target_os = "macos")]
println!("cargo:rustc-flags=-l dylib=c++");
#[cfg(not(target_os = "macos"))]
println!("cargo:rustc-flags=-l dylib=stdc++");

Minimum Supported Rust Version (MSRV)

Currently, the MSRV is 1.76.0, the plan is to always support an MSRV that is at least a year old.

Bumps in the MSRV will not be considered breaking changes. If you need a specific MSRV, make sure to pin a precise version of RustSAT.

Dependencies

~4–13MB
~177K SLoC