Skip to content
You are viewing the corvid 0.3.0 release snapshot — frozen at the 0.3.0 engine release.Current documentation

What is corvid?

corvid is an embedded database: a Rust library linked into your process, not a server. There is no network protocol, no connection string, no daemon. You open a file (or an in-memory instance), get a handle, and share it across threads.

What makes it multi-modal is that the three things AI applications usually assemble from separate systems — a vector database, a full-text engine, and a metadata store — live behind one engine and one query builder, updated in one transaction:

Every secondary index reflects the same committed state as the documents, at the same MVCC version.

That invariant is the project’s central commitment. It is why a hybrid query in corvid never sees a stale index, and why a filter is a true predicate rather than a post-ranking trim.

There is no SQL and no JSON on the query path. Documents are typed Values (maps, arrays, scalars, bytes, and first-class dense vectors), and queries are built with chained method calls:

filter → vector source → text source → fuse (RRF) → rerank (MMR)
→ order_by → offset → limit → select → run

Each source is a retrieval candidate generator; the builder fuses and reranks them and applies shaping. Zero sources gives a pure filter/scan query.

CapabilitySince
Transactional KV storage (redb), atomic multi-op transactionsv0.1.0
Typed values + documents (embeddings first-class)v0.1.0
Vector search (cosine / dot / L2), exact baseline + HNSWv0.1.0
Full-text search (BM25) with CJK bigram tokenizationv0.1.0
Hybrid fusion (RRF) and diversification (MMR)v0.1.0
Scalar, compound, text, geo, and on-disk indexesv0.1.0
Vector quantization: binary, scalar, product (PQ) — in memory and on diskv0.1.0 / v0.2.x
Directed property graph (link/neighbors/traverse)v0.1.0
Geo radius / bbox / k-nearestv0.1.0
TTL, schemas with unique constraints, reactive change feedsv0.1.0
Probabilistic sketches (HLL, Bloom, cuckoo, t-digest, MinHash + LSH)v0.1.0 / v0.2.x
Online backup, dump/load migration (format v2), compactionv0.1.0
MCP sidecar (corvid-mcp) over stdiov0.1.0
C ABI (corvid-ffi): 122-symbol typed cdylib + generated corvid.hv0.2.0
Optional zstd compression and tracing instrumentation (cargo features)v0.2.x
  • No SQL, ever. The fluent builder is the only entrypoint; a SQL parser would drag in ANSI semantics the design does not want.
  • No networking in the engine. Replication, wire protocols, and servers are permanent non-goals. (The separate corvid-mcp sidecar speaks MCP over stdio — a subprocess, not a listener.)
  • No embedding models. You embed in your application (CLIP, sentence transformers, anything); corvid stores and searches the resulting vectors.
  • No backward compatibility before 1.0. A format change is migrated with dump/load — old files are refused, never silently misread.
Crate / repoRole
corvidThe engine itself (Rust library)
corvid-mcpMCP sidecar exposing a store to agentic tools
corvid-ffiThe C ABI — libcorvid.so / .dylib / corvid.dll + corvid.h
corvid-cReference C consumer (release-artifact conformance)
corvid-nodeNode.js binding (native, OOP API)

See bindings for the full ecosystem, including planned bindings.

Ready? Continue to install, or jump straight into the tutorial.