vampire-sys
Low-level FFI bindings to the Vampire theorem prover.
⚠️ You probably want the vampire crate instead
This crate provides unsafe, raw C bindings to the Vampire library. It is intended as an implementation detail and is not meant to be used directly.
For safe, ergonomic Rust bindings, use the vampire crate.
What This Crate Provides
- Raw C function bindings generated from the Vampire C API
- Unsafe types and structures matching the C interface
- Automatic building of the Vampire C++ library via CMake
Building
This crate automatically compiles the Vampire library from source using CMake. You need:
- CMake 3.10 or later
- C++ compiler (GCC, Clang, or MSVC)
- Standard C++ library
The build process:
- Uses CMake to configure the Vampire C++ library
- Builds the
vampire_libstatic library target - Links against the appropriate C++ standard library for your platform
Platform Support
Tested and supported platforms:
- Linux - Links against
libstdc++ - macOS - Links against
libc++ - Windows - Should work with MSVC (untested)
Thread Safety
The Vampire library is NOT thread-safe. If you use this crate directly, you must implement your own synchronization (e.g., with a global mutex). The vampire crate handles this for you.
License
Rust Bindings
This FFI crate is licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Vampire Theorem Prover
The underlying Vampire theorem prover library that this crate links to is licensed under the BSD 3-Clause License. See vampire-lib/LICENCE for the complete license text.
When distributing applications using this crate, you must comply with both the Rust bindings license and the Vampire BSD 3-Clause license requirements.
Links
- Vampire Prover
- vampire crate - Safe Rust bindings