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

Install

corvid is consumed four ways:

  1. From Rust — crates.io, package corvid-db: corvid-db = "0.4" with the use corvid::… ident.
  2. From C or any C-FFI language — the release artifacts of the engine: the corvid cdylib plus the generated corvid.h, attached to every engine release.
  3. From a published language bindingcorvid-node and corvid-js on npm, corvid-python on PyPI, corvid on pub.dev, corvid/php-corvid on Packagist (installed with PIE), and io.github.corvid-db:corvid-jvm (JVM) plus io.github.corvid-db:corvid-android (the Android AAR) on Maven Central. On Apple platforms, corvid-swift installs by Swift Package URL (the tag is the release): .package(url: "https://github.com/corvid-db/corvid-swift.git", from: "0.4.1"). The full matrix — including the artifact-consuming C/Go/C++/Zig bindings — is the bindings overview.
  4. In the browsernpm i corvid-js: the engine compiled to wasm, synchronous in-memory OOP plus async OPFS persistence (see corvid-js).
[dependencies]
corvid-db = "0.4" # the crate ident stays `corvid`: use corvid::…

For pinned, reproducible builds (recommended while pre-1.0), pin the git dependency to an exact release tag instead:

[dependencies]
corvid-db = { git = "https://github.com/corvid-db/corvid", tag = "v0.4.1" }

Requires stable Rust, 2024 edition, MSRV 1.88. The default build has no required features and pulls in only redb; the engine is #![forbid(unsafe_code)].

Both features are OFF by default so the default build stays dependency-minimal (and the WASM size budget stays a contract):

FeatureWhat it doesEnable with
zstdTransparent compression of stored documents at/above 1 KiB. Queries, scans, indexes, dump/load all behave identically — just smaller on disk (~12× on structured text; vector payloads barely compress).corvid-db = { features = ["zstd"] }
tracingStructured instrumentation events at the engine’s load-bearing points, for any tracing-compatible subscriber.corvid-db = { features = ["tracing"] }

See feature flags for details and caveats (notably: backups are physical copies and not portable across feature builds — use dump/load to move between configurations).

Every engine release attaches a per-platform FFI archive containing the cdylib, corvid.h, and golden fixtures, with sha256 entries in checksums.txt:

  • Linux: libcorvid.so
  • macOS: libcorvid.dylib (install name @rpath/libcorvid.dylib since v0.2.1)
  • Windows: corvid.dll plus its MSVC import library corvid.dll.lib — link the import lib, place the DLL on the loader path

Since v0.4.1 the mobile sets ship on the same releases: the Android cdylib archives for aarch64-linux-android (arm64-v8a) and x86_64-linux-android (same tarball shape — cdylib + corvid.h + golden fixtures; consumed by the corvid-android AAR) and the corvid-swift-<tag>.zip holding the CorvidEngine.xcframework (iOS device + fat iOS-simulator + fat macOS staticlib slices) that the corvid-swift SPM package pins as its binary target.

The contract these artifacts implement is the C ABI specification. corvid-c shows the full consumption pattern: fetch a pinned release, verify checksums, link, run the golden suite.

If you prefer to build from source:

Terminal window
git clone https://github.com/corvid-db/corvid
cd corvid
cargo build -p corvid-ffi --release
# → target/release/libcorvid.{so,dylib} or corvid.dll, plus corvid.h
Terminal window
npm i corvid-node

Prebuilt binaries cover darwin-arm64, darwin-x64, linux-x64-gnu, linux-arm64-gnu, and win32-x64-msvc; other platforms build from source (Rust ≥ 1.88 + a C toolchain). Publishing is automated via npm trusted publishing — no registry tokens involved. See corvid-node.

The corvid-mcp binary ships on the engine’s releases (Linux x86_64/aarch64, macOS Intel/Apple Silicon, Windows x86_64):

Terminal window
# from source:
cargo run -p corvid-mcp -- app.corvid # file-backed; omit the path for in-memory

See the MCP sidecar.

TargetStatus
Desktop/server (Linux, macOS, Windows)full support, CI-tested
WASM (wasm32-unknown-unknown) + browsershipped via corvid-js: in-memory sync surface + OPFS persistence (Chromium CI-enforced; Firefox/Safari supported by the OPFS baseline)
Mobile (aarch64 iOS/Android)engine cross-compiles

Open your first database in the tutorial.