Skip to content
@corvid-db

Corvid DB

corvid — an embedded, multi-modal data store for AI applications. Typed Rust builder API, C ABI, and native bindings.

corvid

an embedded, multi-modal database for AI applications

vectors · BM25 full-text (CJK-native) · geo · graph · TTL — one transactional, zero-dependency Rust engine

one engine · one frozen C ABI · eleven language bindings · one release cascade

docs engine CI release

crates.io npm npm PyPI pub.dev Packagist Maven Central Maven Central

every badge above is live — each registry is published by the same one-tag cascade


⚡ Quickstart

cargo add corvid-db
use corvid::{Db, Metric, Value, field};

let db = Db::open("memory.corvid")?;
let docs = db.collection("docs");

// Store a document (any JSON-like value; embeddings are first-class).
let mut doc = std::collections::BTreeMap::new();
doc.insert("category".into(), Value::Text("blog".into()));
doc.insert("body".into(), Value::Text("rust embedded database design".into()));
doc.insert("embedding".into(), Value::Vector(vec![0.1, 0.9, 0.2]));
docs.insert(b"post-1", &Value::Map(doc))?;

// Hybrid query: filter + vector + text, fused and reranked, in one call.
let rows = docs
    .query()
    .filter(field("category").eq(Value::Text("blog".into())))
    .vector("embedding", vec![0.1, 0.9, 0.2], 100, Metric::Cosine)
    .text("body", "rust embedded database", 100)
    .rerank_mmr(0.7)
    .limit(10)
    .run()?;
# Ok::<(), corvid::Error>(())

Not a Rust shop? Same engine, same query, your language — keep scrolling.

✨ One engine, every modality

🧭 Vector exact kNN + HNSW ANN · cosine / euclidean / dot · binary quantization
🔤 Full-text BM25 ranking · dictionary-free CJK tokenization · phrase queries
🌐 Geo radius / bbox / nearest-k, haversine kilometres
🔗 Graph edges, multi-hop traversal, delete cascade
⏱ Time & shape TTL expiry · secondary + compound indexes · aggregations
🛡 Engine transactional · single file or in-memory · zero required dependencies · #![forbid(unsafe_code)]

🧭 Pick your language

Rust Python JavaScript Node.js Kotlin / Java Android Swift Dart / Flutter PHP Go C C++ Zig

Language Install Repo
Rust (the engine) cargo add corvid-db corvid
JavaScript — browser/Worker, wasm + OPFS npm i corvid-js corvid-js
Node.js — prebuilt platform binaries npm i corvid-node corvid-node
Python pip install corvid-python corvid-python
Kotlin / Java (JVM) io.github.corvid-db:corvid-jvm corvid-jvm
Android io.github.corvid-db:corvid-android (AAR, jniLibs bundled) corvid-jvm
Swift — iOS + macOS SPM: https://github.com/corvid-db/corvid-swift.git corvid-swift
Dart / Flutter dart pub add corvid corvid-dart
PHP composer require corvid/php-corvid corvid-php
Go go get github.com/corvid-db/corvid-go corvid-go
C / C++ / Zig link corvid.h + the platform cdylib from the release archive corvid-c · corvid-cpp · corvid-zig

Every binding repo ships a runnable six-example tour — quickstart, hybrid RRF+MMR, vector-index families, text search incl. CJK, graph, geo — executed on every CI leg, and the docs site embeds all six, per language, with an API-at-a-glance for each.

🧪 Proof, not promises
  • One golden suite, eleven replays. The engine's 267-executable-line fixture suite runs through every binding's public API on every CI run — against the exact artifacts each binding ships (downloaded from the pinned engine release, checksum-verified).
  • A locked ABI. 124 symbols, FFI_VERSION = 1, enum values frozen, symbols append-only; the contract (docs/FFI.md) is enforced by drift gates, sanitizers, and a C smoke suite on three OSes.
  • One tag, every registry. Engine release → PRs to all eleven bindings → tags → publishes — and the cascade verifies every fired release run's verdict. Nothing publishes half-way.
📚 Where to go
  • The docs — task-oriented tutorial, the corvid-language reference, index/vector/geo/FTS/graph guides, administration, performance, the full C ABI, and one page per binding.
  • The engine — the Rust crate, the C ABI, the MCP sidecar.
  • Bindings overview — the full matrix with correctness stories.
  • Contributing — per-repo plans, the golden-suite floor, and the ABI contract.

corvid is pre-1.0: APIs may change, but breaks are loud, coordinated, and ride the release cascade — never a surprise.

Popular repositories Loading

  1. corvid corvid Public

    Embedded multi-modal data store for AI applications: vector + full-text + graph + geo behind one fluent Rust API, a typed C ABI, and native bindings.

    Rust 1

  2. corvid-c corvid-c Public

    C bindings for corvid — the canonical FFI consumer (typed C ABI, golden conformance suite).

    C

  3. corvid-node corvid-node Public

    Node.js bindings for corvid — typed FFI via napi-rs, zero serialization, OOP surface.

    Rust

  4. docs docs Public

    The corvid documentation — tutorials, language reference, C ABI spec, and bindings. Versioned, for humans and AI.

    JavaScript

  5. corvid-python corvid-python Public

    Python bindings for corvid — the embedded multi-modal database (pyo3, typed, zero serialization)

    Rust

  6. corvid-go corvid-go Public

    Go bindings for corvid — the embedded multi-modal database (cgo over the typed C ABI)

    Go

Repositories

Showing 10 of 14 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…