This repository containshigh-levelandlow-levelRust bindings for theZ3 solver.
Thez3
crateprovides high-level bindings to the Z3 solver. It is built
on top of, and wraps, thez3-sys
crate. This is the crate you'll want to use
99% of the time.
Thez3-sys
crateprovides the raw, unsafe, low-level C API that Z3
exposes.
The first scenario where it makes sense to usez3-sys
directly is when some Z3
feature isn't wrapped into high-level bindings in thez3
crate yet. In this
case, it is worth filing an issue and discussing its implementation in thez3
crate, but you can get at the raw, underlying features via thez3-sys
crate in
the meantime.
The only other time to usez3-sys
directly would be if you are writing your
own custom high-level API for Z3, instead of using thez3
crate.
- Make a version bump commit
- Bump version for the relevant crate in Cargo.toml
- Update version in examples/READMEs
- Create a git tag for the commit
- i.e.
git tag z3-v0.10.0
- i.e.
- Push the changes
git push
git push --tags
- Publish on crates.io
cargo publish