modelvault 0.15.2

Application-focused embedded database for typed models — validation, migrations, nested objects, single-file deploy.
Documentation

modelvault (Rust facade)

CI crates.io Docs

Application-focused embedded database

Schema-first typed storage for application models. The recommended Rust crate for ModelVault — the database for application models.

  • Model-driven schemas — collections from field definitions or #[derive(DbModel)]
  • Validation on write — types and constraints enforced before persistence
  • Migrations — schema catalog versioning and compatibility helpers
  • Nested objects — typed multi-segment field paths
  • Single-file deploy — on-disk .modelvault or in-memory for tests

Documentation: modelvault.readthedocs.io · rustdoc: docs.rs/modelvault

Why ModelVault When to choose ModelVault
Quickstart First collection
Why ModelVault Positioning and design goals
Python bindings Pydantic / dataclass path

Install

[dependencies]
modelvault = "0.15"
Variant Dependency
Engine only (no macros) modelvault = { version = "0.15", default-features = false }
Experimental async modelvault = { version = "0.15", features = ["async"] }

Features: derive (default, #[derive(DbModel)]) · async (AsyncDatabase on a thread pool with concurrent reads and exclusive writes — experimental) — see async policy.

Example

cargo run -p modelvault --example open
use std::borrow::Cow;

use modelvault::prelude::*;
use modelvault::schema::FieldPath;
use modelvault::FieldDef;
use modelvault::Type;

fn main() -> Result<(), DbError> {
    let mut db = Database::open_in_memory()?;
    println!("opened: {}", db.path().display());
    let (id, ver) = db.register_collection(
        "books",
        vec![FieldDef {
            path: FieldPath::new([Cow::Borrowed("title")])?,
            ty: Type::String,
            constraints: vec![],
        }],
        "title",
    )?;
    println!("registered collection id={} version={}", id.0, ver.0);
    Ok(())
}

Output:

opened: :memory:
registered collection id=1 version=1

DbModel and nested schemas: Models & collections

Related crates

Crate When
modelvault-core Engine-only or tooling
modelvault-derive Direct proc-macro dependency

License

MIT — LICENSE