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

sys bitwuzla-sys

Low-level bindings for the Bitwuzla SMT solver

5 unstable releases

new 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

#406 in Algorithms

Download history 7/week @ 2024-03-15 26/week @ 2024-03-29 9/week @ 2024-04-05

219 downloads per month

MIT license

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


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


Using shared bitwuzla library

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

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:

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.


This crate is licensed under the MIT license.