taladb
An embedded document and vector database for Rust apps — local-first, in one file.
Store documents, query them with MongoDB-style filters, index them, and run vector, full-text and hybrid search, all inside your process. No server, no network. The same engine powers TalaDB in the browser, Node.js, React Native, Android and iOS, so data and queries behave identically everywhere.
- Docs: https://taladb.dev/guide/rust · API: https://docs.rs/taladb
- Repository: https://github.com/taladb/taladb
Early release. The Rust crate is new: its API may still change between minor versions before 1.0.
Install
Quick start
use ;
use json;
Your types only need serde. Filters and updates are JSON — $eq, $gt,
$in, $exists, $and, $or, $set, $inc, $push, … — the same
language as every TalaDB platform (reference).
A malformed filter is an error, never a silent match-all.
Vector and full-text search
use ;
Live queries
use ;
use json;
Also included
- Encryption at rest:
Database::open_encrypted(path, passphrase)(featureencryption). - Migrations:
user_version/set_user_versionfor your own schema steps; storage-format upgrades run automatically at open. - Sorting, pagination, projection, aggregation, HNSW, hybrid search: on the
untyped
Collection, reachable from any typed collection with.raw().
Database is cheap to clone and safe to share across threads. Operations are
synchronous; in async code, run them with spawn_blocking.
Features
| Feature | Default | What it adds |
|---|---|---|
config-yaml |
✅ | Reads taladb.config.yml. |
legacy-migration |
✅ | Opens database files written by TalaDB before 0.11. Turn it off to drop a second copy of redb from the build. |
encryption |
AES-GCM encryption at rest with PBKDF2 key derivation. |
License
MIT OR Apache-2.0