#smt-solver #smt #ffi #low-level #bitwuzla

sys bitwuzla-sys

Low-level bindings for the Bitwuzla SMT solver

5 unstable releases

0.5.1 Jul 9, 2024
0.5.0 Jul 5, 2024
0.2.0 Jul 26, 2022
0.1.1 Nov 25, 2021
0.1.0 Nov 25, 2021

#436 in Algorithms

MIT license

3MB
80K SLoC

C++ 74K SLoC // 0.1% comments Python 3K SLoC // 0.2% comments Rust 1K SLoC C 1K SLoC // 0.3% comments Cython 747 SLoC // 0.6% comments Shell 40 SLoC // 0.2% comments

crates.io docs.rs

bitwuzla-sys

This Rust crate provides low-level bindings for the Bitwuzla SMT solver, version 0.5.0.

Installation

Using shared bitwuzla library

Compile bitwuzla as a shared library and install it. Then add this crate to your Cargo.toml:

[dependencies]
bitwuzla-sys = "0.5"

Using vendored static bitwuzla library

This is possible on UNIX-like targets only. Add this crate to your Cargo.toml with the vendor-cadical feature enabled:

[dependencies]
bitwuzla-sys = { version = "0.5", features = ["vendor-cadical"] }

Enabling vendor-cadical will automatically build a static bitwuzla library and link against it. Currently this uses the CaDiCaL SAT solver.

In order for the build to succeed, you'll need to install some tools on your build host; for a Debian-based distribution build-essential, git, m4, and meson should be sufficient.

License

This crate is licensed under the MIT license.

Dependencies