ModelVault
Store Pydantic models directly
Schema-first typed storage for application models. Official CPython bindings for ModelVault (PyO3).
Store dataclasses and Pydantic v2 models with validation, indexes, migrations, and single-file deployment — no low-level schema JSON required for the recommended path.
Asyncio: AsyncDatabase runs engine work on a thread pool and supports concurrent reads on one handle (await asyncio.gather(...) for many get / query calls). Writes and transactions remain exclusive. See Async policy.
Read the docs: modelvault.readthedocs.io
| Why ModelVault | Positioning and tradeoffs |
| Pydantic guide | Model-first schemas |
| FastAPI guide | Async API services with AsyncDatabase |
| Async policy | AsyncDatabase, concurrent reads |
| Quickstart | First insert in minutes |
| Why ModelVault | Positioning and design goals |
Install
CPython 3.9+ · stable ABI wheels (cp39-abi3)
pip install "modelvault>=0.16.0,<0.17"
Quick start (Pydantic)
from pydantic import BaseModel
import modelvault
class Book(BaseModel):
__modelvault_primary_key__ = "title"
title: str
year: int
db = modelvault.Database.open_in_memory()
books = modelvault.models.collection(db, Book)
books.insert(Book(title="ModelVault", year=2020))
print(books.get("ModelVault"))
print(modelvault.__version__)
Output:
title='ModelVault' year=2020
0.16.0
Dataclass example and indexed queries: Quickstart · Python guide
FastAPI: open with await AsyncDatabase.open(...), use modelvault.models.async_collection, and async def route handlers — FastAPI guide · runnable examples/fastapi_app.
Build from source
Requires Rust, Python 3.9+, and maturin.
cd python/modelvault && maturin develop --release && pytest -q
Contributor layout: python/README.md · full pipeline: make check-full from repo root
License
MIT — LICENSE
Metadata
Release files for modelvault 0.16.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| modelvault-0.16.0.tar.gz | 236.2 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| modelvault-0.16.0-cp39-abi3-win_arm64.whl | CPython 3.9 | abi3 | Windows ARM64 | Details |
| modelvault-0.16.0-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| modelvault-0.16.0-cp39-abi3-musllinux_1_2_x86_64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ x86-64 | Details |
| modelvault-0.16.0-cp39-abi3-musllinux_1_2_aarch64.whl | CPython 3.9 | abi3 | Linux musl 1.2+ ARM64 | Details |
| modelvault-0.16.0-cp39-abi3-manylinux_2_28_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| modelvault-0.16.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| modelvault-0.16.0-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| modelvault-0.16.0-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 17.7 MB
Release files / modelvault-0.16.0.tar.gz
| Download URL | modelvault-0.16.0.tar.gz |
|---|---|
| Size | 236.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa8378dbb9f6beffa76ae8cbbfacf549486d0e195a72e28ca299b737cc839eef
|
|
BLAKE2b-256 checksum How to use checksums |
8ac8e2d64e9d80040efd1e01fe25ef121f5faa473ce40631c34dbe4e66c1f271
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / modelvault-0.16.0-cp39-abi3-win_arm64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-win_arm64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.9 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
7b3defb3ce620039e63eef90bb7973d727b42ab8e3bc8303490429f9bc32c96b
|
|
BLAKE2b-256 checksum How to use checksums |
a944352248e4a1723994dd3b6ccd1306b74b3c6c2bd5b8e02c66572626e5ae66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.9
|
Release files / modelvault-0.16.0-cp39-abi3-win_amd64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
95e42e53aba0de5c8f798863ab25a3271ef8405c51728a15399977e39a187a66
|
|
BLAKE2b-256 checksum How to use checksums |
0a29e250a6edd613451c680dbf20ddcbe528c68762d369f0f5bf3ac31090796a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.13
|
Release files / modelvault-0.16.0-cp39-abi3-musllinux_1_2_x86_64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
1b2b65d4017f83675f9c1a8c0c9b9e8e1ea541526776e57c6e698e81f677b4a2
|
|
BLAKE2b-256 checksum How to use checksums |
49eda8c0b32454e5a315e55ad3f3b70671b9f66495915d658419aa8484c46cd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.25
|
Release files / modelvault-0.16.0-cp39-abi3-musllinux_1_2_aarch64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
5cafa8505f9c0e4d15eaa43e320430c688551968bbe8cfe7510d2c9f63afab68
|
|
BLAKE2b-256 checksum How to use checksums |
c9e996e0a637d080419b221e63a4ee393d18aaef3b9132bcecfaa528b5c6f55f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.25
|
Release files / modelvault-0.16.0-cp39-abi3-manylinux_2_28_aarch64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
55f1e962e785da4c896b15476897f81b300d7147f6d5b51f6666497c5d8d3674
|
|
BLAKE2b-256 checksum How to use checksums |
35a30042eb943d36b449d45b2d617ec02db11459328f4111a48683c2965331dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / modelvault-0.16.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
1245e57151e7508606fd34e4d8510a460c1f3810157c09a4449936cf3a798bde
|
|
BLAKE2b-256 checksum How to use checksums |
d04427fcfc8ac0536e0a20cc8bb9ee01a87063b2ff2cef43d916f48bfa171f4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / modelvault-0.16.0-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ec12950aa612690991692d7973e74f4e15bbb3f8d67e92d11532eb436d42f39d
|
|
BLAKE2b-256 checksum How to use checksums |
75ec2a83eca634b8576494a9aa795d8da6b204003ebf17e63d44f33ef368c4e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.14.5
|
Release files / modelvault-0.16.0-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | modelvault-0.16.0-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
a0a33a00387d2bf41c8aa69532a4669275614ba758decd502f5d6ec0f417442d
|
|
BLAKE2b-256 checksum How to use checksums |
a9212ce73f22e30413f9167324e5e61bcad4dd7a50b038c2b08c3aa0150774e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.14.5
|