zova
Safe Rust bindings for Zova.
Zova is a SQLite-backed embedded database for records, objects, and vectors in
one local file. This crate wraps the lower-level zova-sys C ABI crate with
Rust ownership, error handling, and safe containers.
Install
[]
= "0.20.0"
The crate builds Zova's native C ABI through zova-sys, so users need Rust,
Zig 0.16.0 or newer, and a working C compiler/linker.
What It Covers
- database create/open/convert
- SQL exec and prepared statements
- transactions and savepoints
- backup, compact copy, and restore
- objects, chunks, manifests, range reads, and
ObjectWriter - vector collections, CRUD, exact search, candidate search, thresholds, and SQL-native vector search
- same-process transaction-aware app events with
listen/notify - transparent use of v0.20 bound object/vector stores after open
SharedDatabasefor a cloneable, serialized Rust handle
Store create/bind/unbind/split management is CLI/native-Zig-only in v0.20; this crate keeps the existing object and vector APIs source-compatible.
Example
use ;
let mut db = create?;
db.exec?;
let mut insert = db.prepare?;
insert.bind_text?;
assert_eq!;
# Ok::
See the workspace README and examples for object and vector workflows.
App Events
Database::listen and Database::notify provide queue-only, same-process app
events on one open Zova handle. Notifications are explicit and in-memory; they
are delivered after commit and discarded on rollback. They are not durable,
cross-process, replayable, or automatic mutation logs.