#ffi #bindings

sys vampire-sys

Low-level FFI bindings to the Vampire theorem prover (use the 'vampire' crate instead)

8 releases (4 breaking)

Uses new Rust 2024

new 0.5.2 Feb 28, 2026
0.5.1 Feb 27, 2026
0.4.0 Feb 20, 2026
0.3.0 Feb 10, 2026
0.1.0 Jan 30, 2026

#326 in Value formatting


Used in vampire-prover

MIT/Apache

8MB
168K SLoC

C++ 134K SLoC // 0.1% comments Prolog 20K SLoC // 0.1% comments C 9K SLoC // 0.1% comments Shell 2K SLoC // 0.1% comments Python 2K SLoC // 0.1% comments Solidity 1K SLoC Rust 612 SLoC // 0.0% comments Perl 18 SLoC // 0.1% comments

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-prover 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:

  1. Uses CMake to configure the Vampire C++ library
  2. Builds the vampire_lib static library target
  3. 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:

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.

Dependencies