#ffi #smt #satisfiability #solver

z3

High-level rust bindings for the Z3 SMT solver from Microsoft Research

17 releases (10 breaking)

Uses old Rust 2015

0.11.2 Aug 24, 2021
0.11.1 Jul 21, 2021
0.10.0 Mar 23, 2021
0.9.0 Dec 3, 2020
0.1.0 Dec 28, 2015

#174 in Math

Download history 663/week @ 2023-02-03 738/week @ 2023-02-10 1030/week @ 2023-02-17 1010/week @ 2023-02-24 1035/week @ 2023-03-03 670/week @ 2023-03-10 926/week @ 2023-03-17 625/week @ 2023-03-24 1415/week @ 2023-03-31 3768/week @ 2023-04-07 2259/week @ 2023-04-14 2785/week @ 2023-04-21 891/week @ 2023-04-28 978/week @ 2023-05-05 1177/week @ 2023-05-12 1222/week @ 2023-05-19

4,431 downloads per month
Used in 9 crates (8 directly)

MIT license

18MB
404K SLoC

C++ 355K SLoC // 0.1% comments Python 13K SLoC // 0.4% comments C# 10K SLoC // 0.4% comments Java 9K SLoC // 0.4% comments Rust 6K SLoC // 0.0% comments C 5.5K SLoC // 0.2% comments OCaml 3K SLoC // 0.4% comments Shell 704 SLoC // 0.2% comments D 364 SLoC // 0.1% comments Visual Studio Project 136 SLoC Visual Studio Solution 124 SLoC Batch 85 SLoC

z3

High-level rust bindings to the Z3 SMT solver

Licensed under the MIT license.

See https://github.com/Z3Prover/z3 for details on Z3.

Documentation

The API is fully documented with examples: https://docs.rs/z3/

Installation

This crate works with Cargo and is on crates.io. Add it to your Cargo.toml like so:

[dependencies]
z3 = "0.11.2"

Note: This library has a dependency on Z3. You will either need to have the Z3 dependency already installed, or you can statically link to our build of Z3 like so:

[dependencies]
z3 = {version="0.11.2", features = ["static-link-z3"]}

Support and Maintenance

I am developing this library largely on my own so far. I am able to offer support and maintenance, but would very much appreciate donations via Patreon. I can also provide commercial support, so feel free to contact me.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be dual licensed as above, without any additional terms or conditions.

Dependencies