Skip to main content

Voodoo Store

Application infrastructure in a store.

Voodoo Store is a standalone, 100% Rust embedded application-state engine built around one goal:

A Voodoo application should be able to run robustly with Voodoo + Voodoo Store and no mandatory external infrastructure by default.

It is being built for the Voodoo ecosystem, but the core is not coupled to Voodoo Framework. The engine and .vstore format are designed to remain language-neutral and independently usable.

SQLite made the database a file. Voodoo Store aims to make application infrastructure a store.

Status

Current published Python binding: v0.2.2. Core and bindings remain pre-1.0.

Voodoo Store is pre-1.0, but the Rust core and the published Python binding are already suitable for controlled single-node development and production experiments where the current compatibility and operational limits are understood. The next integration line is 0.3 Native Surface Convergence: exposing more of the existing Rust primitives directly to Python and Voodoo rather than reimplementing them over KV.

The current engine includes:

  • versioned, checksummed .vstore files and strong persistent Store identity;
  • checksummed append-only logging, atomic transactions and deterministic crash recovery;
  • Linux/macOS/Windows single-writer locking and explicit durability modes;
  • byte-oriented KV, CAS, counters, prefix scans and TTL;
  • Collections with schema/codec metadata and secondary/unique indexes;
  • durable Queues with leases, delay, priority, retry/NACK, dead state and stale-ACK protection;
  • durable Jobs with 128-bit IDs, idempotency, retry/backoff, deadlines and execution history;
  • one-shot, interval and deterministic UTC Cron scheduling;
  • durable Triggers;
  • Topics, Streams, replay, durable subscriptions and Consumer Groups;
  • durable request/reply correlation and RPC state;
  • transactional Outbox events;
  • content-addressed SHA-256 object storage, deduplication, verification, references and orphan GC;
  • durable Workflow/HITL state with waits, signals, timers and history;
  • verify, backup, create-only restore, logical snapshots and compact-copy;
  • structured health/storage accounting;
  • standalone voodoo-store CLI;
  • C ABI v2 foundation with transactions, last_error and panic containment;
  • deterministic corruption, torn-write and process-crash testing;
  • CI across Format, Clippy, Linux, macOS, Windows and Rust 1.85 MSRV.

This is not yet a production 1.0. File/API compatibility should still be considered pre-1.0, and important data should be backed up before upgrading experimental deployments.

Start here

Build and test:

cargo build --workspace
cargo test --workspace

Run the executable application-state example:

cargo run -p voodoo-store-core --example application_state -- application.vstore

The example commits application state, a durable Job and an Outbox Event through one transaction:

BEGIN
  PUT order:42:status = paid
  ENQUEUE JOB email.send_receipt(order:42)
  EMIT EVENT order.paid(order:42)
COMMIT

If that transaction does not commit, none of those staged mutations become visible after recovery.

See docs/QUICKSTART.md for the full walkthrough.

North Star

The standard Voodoo deployment is intentionally small:

Application
    |
    +-- Voodoo Runtime
    |
    `-- application.vstore

A normal application should not need Redis, PostgreSQL, RabbitMQ, Kafka, Celery, a separate cron service, or a separate local object service merely to get robust application infrastructure.

External infrastructure remains available as optional adapters when scale or deployment topology genuinely requires it.

Architecture

Applications / Frameworks
        |
        +-- Voodoo Runtime / Framework
        +-- Rust
        +-- C / native bindings
        +-- Python binding
        +-- future Node / Go / Swift bindings
        |
Stable APIs / bindings
        |
voodoo-store-core
        |
        +-- Data: KV / TTL / Collections / Indexes
        +-- Work: Queues / Jobs / Scheduler / Cron / Triggers
        +-- Messaging: Topics / Streams / Consumer Groups / RPC / Outbox
        +-- Objects
        +-- Workflow state
        +-- Operations / health / lifecycle
        |
Transaction / Commit Layer
        |
Append-only Checksummed Log
        |
Recovery / Verification
        |
Versioned .vstore Header
        |
Filesystem + File Locking

The Store persists durable semantics. Voodoo Runtime executes application code, HTTP handlers, AI inference, external calls and Identity/Auth behavior.

Cross-domain transactions

A major Voodoo Store goal is to remove the split-brain normally created by a database plus external work infrastructure.

Current typed transaction primitives already allow application state, Jobs, Outbox Events and durable RPC Requests to share a Store transaction.

use voodoo_store_core::{JobSpec, Store};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut store = Store::open("application.vstore")?;

    let mut tx = store.begin()?;
    tx.put(b"order:42:status", b"paid")?;
    tx.enqueue_job(JobSpec::new(b"email.send_receipt", b"order:42"), 1_000)?;
    tx.emit_event(b"order.paid", b"order:42", 1_000)?;
    tx.request_rpc(b"payments.capture", b"order:42", 1_000, Some(31_000))?;
    tx.commit()?;

    Ok(())
}

The public cross-domain transaction surface will continue expanding to additional primitives before 1.0.

Durability

use voodoo_store_core::{Durability, Store, StoreOptions};

let store = Store::open_with_options(
    "application.vstore",
    StoreOptions {
        durability: Durability::Strict,
        repair_torn_tail: true,
    },
)?;
  • Strict uses sync_all() on commit.
  • Data uses sync_data() on commit and is the default.
  • Relaxed relies on later operating-system flushing.

Only an incomplete physical tail is automatically repairable. Corruption inside the durable prefix is surfaced as an error rather than silently discarded.

Current good-fit workloads

The current pre-1.0 line is a reasonable target for controlled use in:

  • Voodoo Runtime development;
  • SaaS/internal-tool prototypes and early deployments;
  • desktop/local-first applications;
  • AI agent and automation state;
  • edge gateways and robotics controllers;
  • single-node APIs that want durable Jobs/Queues without deploying an infrastructure stack.

Pin the exact Store version and keep backups for important pre-1.0 stores.

Known pre-1.0 limits

The main remaining work before a 1.0 claim includes:

  • continuous fuzzing and long-running durability soak tests;
  • filesystem/power-loss proof for generation activation and stronger repair tooling;
  • completing Python/native convergence for cross-domain transactions;
  • migrating Voodoo Framework compatibility adapters onto the native messaging/object/query surfaces;
  • richer Collection migration/composite-index/query-planner support and physical ordered range seeks;
  • live-query/watch convenience APIs above the durable change feed;
  • quotas, richer metrics and tracing;
  • streaming object I/O and lifecycle policies;
  • complete C ABI coverage and additional first-class language bindings;
  • encryption-at-rest/key-rotation design;
  • later replication/sync and Voodoo Protocol integration.

Store Studio and distributed operation are later milestones and do not block controlled single-node use.

CLI

The workspace includes the standalone voodoo-store binary. Examples:

cargo run -p voodoo-store-cli -- put application.vstore hello world
cargo run -p voodoo-store-cli -- get application.vstore hello
cargo run -p voodoo-store-cli -- health application.vstore
cargo run -p voodoo-store-cli -- verify application.vstore
cargo run -p voodoo-store-cli -- backup application.vstore application.backup.vstore

The CLI also exposes lifecycle, Queue, Collection, Messaging, Object, Job, Scheduler, Cron, Trigger and Workflow operations. See docs/QUICKSTART.md for usage guidance.

C ABI

voodoo-store-ffi is the portability foundation for non-Rust bindings. The current ABI includes Store handles, KV operations, buffered transactions, thread-local last_error reporting and panic containment. Higher-level primitive coverage is still expanding before the ABI is considered complete.

Public header:

include/voodoo_store.h

Workspace

crates/
  voodoo-store-core/   # correctness-critical embedded engine
  voodoo-store-ffi/    # C ABI portability layer
  voodoo-store-cli/    # standalone inspection and operation CLI

include/
  voodoo_store.h

docs/
  ARCHITECTURE.md
  SPEC.md
  INVARIANTS.md
  ROADMAP.md
  QUICKSTART.md

Voodoo integration

Voodoo Framework/Runtime already consumes the published Python binding behind higher-level primitives while the engine stays independently usable. The 0.3 convergence work removes remaining compatibility implementations where the Rust core already has a native primitive.

Voodoo Model       -> Store Collections / data
Voodoo @task       -> Store Jobs / Queues
Voodoo Scheduler   -> Store schedules / Cron
Voodoo events      -> Store Topics / Streams / Outbox
Voodoo ObjectStore -> Store Objects
Execution / HITL   -> Store Workflow state
Runtime Identity   -> durable state persisted through Store

Identity/Auth semantics remain in Voodoo Runtime, not in Voodoo Store.

Compatibility principle

The lowest-level durable contract is bytes. Voodoo Store does not persist host-specific Python pickle, Java serialization, V8 objects or Go gob as its core format. Typed codecs and schemas are layered above the engine so a compatible Store can be accessed from multiple runtimes.

Development principle

Correctness comes before feature count and benchmarks:

SPEC
  -> INVARIANTS
  -> IMPLEMENTATION
  -> TESTS
  -> FAULT INJECTION
  -> FUZZING
  -> BENCHMARKS
  -> OPTIMIZATION

License

Apache-2.0

Release files for voodoo-store 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for voodoo-store 0.3.0
File Size Uploaded
voodoo_store-0.3.0.tar.gz 96.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for voodoo-store 0.3.0
File
voodoo_store-0.3.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
voodoo_store-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
voodoo_store-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
voodoo_store-0.3.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
voodoo_store-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.5 MB

Release files / voodoo_store-0.3.0.tar.gz

Download URL voodoo_store-0.3.0.tar.gz
Size 96.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d73a2f86a752ed13ea2d15782a75ff7eb87cf93b814424a3a7ba0951b6de6353
BLAKE2b-256 checksum
How to use checksums
065987ff7237dfe48ad727f347ee5e8f30cf24076edb579e158df3c315f3ab16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / voodoo_store-0.3.0-cp39-abi3-win_amd64.whl

Download URL voodoo_store-0.3.0-cp39-abi3-win_amd64.whl
Size 570.0 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
585460dfec5b3d5673a23e33e32d39802bcc8c9da1c1172584199a1273f73962
BLAKE2b-256 checksum
How to use checksums
21ade7c78b7e3f2c8e41467d8245fd82e222ada920689ffa00e018b5bf5f27f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / voodoo_store-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL voodoo_store-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 734.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
db4949a36c27fee1fc7db3fa6536a648b63a5b5b5328e49348acb571e65220af
BLAKE2b-256 checksum
How to use checksums
534c6f4f2685409eb479d4274801f6a9c39ac1a997ad34deccd08fee752b1ddb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / voodoo_store-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL voodoo_store-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 724.4 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
8aadeac26842cb55d7a57415d3bdab40cf2f405843d419ab5582ac99fd6c113c
BLAKE2b-256 checksum
How to use checksums
f9e5cb99b64b6388159601622ebd61360d4c1eee9550347b08d1a053e6be5b4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / voodoo_store-0.3.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL voodoo_store-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
Size 657.7 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e6c7c498edc5839c4516657208d79b8aca91bc0045f091cc8cf5d9e749eb969a
BLAKE2b-256 checksum
How to use checksums
a22fe8dd48fa9fc30fdef2deffcfcc4abbedd601e94053124923590b764d33bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / voodoo_store-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL voodoo_store-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 687.7 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a0d69bb5129d81c76e79d63a3f6b7c58711d0773c24c817931e0346ee779a296
BLAKE2b-256 checksum
How to use checksums
6cee5763bfad156ff643cba254156af058fe46e0d9fc6375f0cc6d271329f2cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

6 release files

0.2.2

6 release files

0.1.1

6 release files

0.1.0

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page