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

v0.1 usable single-node development release.

Voodoo Store is pre-1.0, but it is now suitable for controlled single-node development and production experiments where its current compatibility and operational limits are understood.

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
        +-- future Python / 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

v0.1 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;
  • identity-preserving checkpoints/log generations and atomic in-place compaction;
  • richer Collection query/range/composite-index support;
  • CDC, change feeds and live-query/watch APIs;
  • complete cross-domain transaction coverage for all Store primitives;
  • quotas, richer metrics and tracing;
  • streaming object I/O and lifecycle policies;
  • complete C ABI coverage and 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 will consume Store behind higher-level primitives while the engine stays independently usable.

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.1.1

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.1.1
File Size Uploaded
voodoo_store-0.1.1.tar.gz 82.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for voodoo-store 0.1.1
File
voodoo_store-0.1.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
voodoo_store-0.1.1-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.1.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
voodoo_store-0.1.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
voodoo_store-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 1.8 MB

Release files / voodoo_store-0.1.1.tar.gz

Download URL voodoo_store-0.1.1.tar.gz
Size 82.5 kB
Tags Source
SHA-256 checksum
How to use checksums
03ec8b2d25fdd3a4e7f766ce6e42f7edff204b75e22cc257b79a22842e14ef48
BLAKE2b-256 checksum
How to use checksums
587b3ea5e33a0d62568472f498053449502b0b39e769da010328716cd8bcafed
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 13, 2026.

Transparency log

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

Download URL voodoo_store-0.1.1-cp39-abi3-win_amd64.whl
Size 238.5 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
e90b40fcd1e0836845e54ed43110cbf2f1f7a40a7f67dd04f20228a55a4ee4db
BLAKE2b-256 checksum
How to use checksums
798eecefef52e81c8ee75e445c379b237bb0f650209f80e87bbc520ed11084ce
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 13, 2026.

Transparency log

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

Download URL voodoo_store-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 393.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
9d4c06f075d71a2773760f32bca6f9df6c1d17c76e11566a01484ade5ca8da8c
BLAKE2b-256 checksum
How to use checksums
2340d422e0a13b2e53e8d005327477bc8604121dcfc480357a893af603f63c91
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 13, 2026.

Transparency log

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

Download URL voodoo_store-0.1.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 380.7 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
43d2ff3d328d048f730a2e9b136f59cc822b19299098c5d7348f95c3faf0bef4
BLAKE2b-256 checksum
How to use checksums
e0aba8bcac21a0dcfce2d67ab6971d0f6a3f31185bc18db915b2a3c215044f55
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 13, 2026.

Transparency log

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

Download URL voodoo_store-0.1.1-cp39-abi3-macosx_11_0_arm64.whl
Size 337.5 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
217b53d67e54dbc72294d9283d917fd0407df49079069ec73e2f4b68345111e6
BLAKE2b-256 checksum
How to use checksums
1b76c9657f16b571ffe03fee9678ef8da2fbd0a0f119af98a3b0b22d0a108635
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 13, 2026.

Transparency log

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

Download URL voodoo_store-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 347.7 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8ebf4a85dfbd1c3383ef9a6ff4a6de7429bc397d99fcde577d8119682174faf8
BLAKE2b-256 checksum
How to use checksums
65242408119c697f121682dc9c922322edce5f0cfddc4e11bdf857cefc018da7
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 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

6 release files

0.2.2

6 release files

This release

0.1.1 This release

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