Skip to main content
Version: v0.23.0

Installation

Choose the highest-level binding that fits your application. Every binding uses the same Zova file format and storage engine; packaging, ownership conventions, and access to low-level host features differ.

Choose a path

ApplicationRecommended packageNative dependency model
Rustzovabuilds bundled generated C
Pythonzova wheelnative extension included on supported targets
GoGo module + C ABI archivecgo links the matching static library
C or another FFI languageC ABI archiveinclude zova.h and link libzova_c
Zig or Zova developmentsource packagebuild the native project with Zig
Operations onlyCLI archivestandalone executable

Use zova-sys only when a Rust application specifically needs the raw C ABI. Use a native Zig-built artifact when external .zovaext loading is required; generated-C package snapshots intentionally report dynamic loading as unavailable.

Install or build for your language

cargo add zova@0.23.0

Rust

Or pin the version explicitly:

[dependencies]
zova = "=0.23.0"

The safe crate builds the bundled generated-C native layer. Consumers need Rust 1.79 or newer and a C compiler, but not Zig.

Verify the installation:

use zova::Database;

fn main() -> Result<(), zova::Error> {
let mut db = Database::create("smoke.zova")?;
db.exec("create table notes(id integer primary key, body text)")?;
Ok(())
}
cargo run

Continue with the Rust binding guide.

Python

Published wheels target Linux and macOS, x86_64 and arm64, on CPython 3.10 and 3.12. A matching wheel needs no compiler. If package installation selects the source distribution, the machine needs Rust and a C compiler.

Verify the import and file creation:

import zova

with zova.Database.create("smoke.zova") as db:
db.exec("create table notes(id integer primary key, body text)")

Use context managers so native handles close deterministically. Continue with the Python binding guide.

Go

The Go package calls Zova through cgo. Download the v0.23.0 C ABI archive matching the target operating system and architecture, then point the build at its directories:

CGO_CFLAGS="-I/absolute/path/to/zova-c-abi/include" \
CGO_LDFLAGS="-L/absolute/path/to/zova-c-abi/lib -lzova_c" \
go test ./...

Keep the Go module, header, and library on the same Zova version. See the Go binding guide for handle and deployment behavior.

CLI and C ABI archives

Download the target archive from the v0.23.0 GitHub release. CLI and C ABI packages are separate artifacts.

After extracting the CLI, verify it:

zova --version
zova --help

The C ABI archive contains zova.h and the static library. Add the include path to compilation and the library path to linking; do not combine files from different releases.

Build from source

Source builds require Zig 0.16.0 or newer and a C compiler:

zig build
zig build c-abi

Use source builds for Zova development, unsupported targets, or native extension-host requirements. A system SQLite installation is not needed; Zova vendors SQLite 3.53.2.

Confirm what you installed

Before integrating important data:

  1. Create a disposable database.
  2. Write and read one application row.
  3. Run zova check --deep with the matching CLI when available.
  4. Confirm the artifact reports v0.23.0.
  5. Record the package and native artifact versions in the application build.

Then follow Build your first database.