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

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.2.2
File Size Uploaded
voodoo_store-0.2.2.tar.gz 88.0 kB Details

Built distributions (wheels)

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

Total release size: 2.5 MB

Release files / voodoo_store-0.2.2.tar.gz

Download URL voodoo_store-0.2.2.tar.gz
Size 88.0 kB
Tags Source
SHA-256 checksum
How to use checksums
60613d4cb6988d6f8d1aaf1ab626fe81b2356c619d9c4c387f4c807fe9438185
BLAKE2b-256 checksum
How to use checksums
8d703076dd7a94b2c99ea6640e381c18e0ffedb3a058562e7bd6a0f77d85ab89
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 14, 2026.

Transparency log

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

Download URL voodoo_store-0.2.2-cp39-abi3-win_amd64.whl
Size 380.4 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
103e21b86776f44afa35e9cdf1e7fec837d3bfccc39c9b9c0cd686dcda43feb8
BLAKE2b-256 checksum
How to use checksums
0b644360977e6489244ffa3461bb2473b8e9843d1cfeded8ad09d3a47dedc641
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 14, 2026.

Transparency log

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

Download URL voodoo_store-0.2.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 546.1 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
041b5223625d7ba01904a7f13fe39098665439e4b7e8a2110dc0f5b79650622d
BLAKE2b-256 checksum
How to use checksums
68ca1a33203e55d0b63dd9ed6a5e8d8abc3f84e210f3b20187c3865317df8647
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 14, 2026.

Transparency log

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

Download URL voodoo_store-0.2.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 538.5 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
318fdd972015bdfb22e068ae42d99fdf04c3841f3fec504e1f50a2f14ec6606d
BLAKE2b-256 checksum
How to use checksums
56fbc615628f8aec93856bd31b0d2baa3b249a4825740b64fa442982062aaeb2
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 14, 2026.

Transparency log

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

Download URL voodoo_store-0.2.2-cp39-abi3-macosx_11_0_arm64.whl
Size 485.5 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
40e6de01f42c72e4cd7be6368ecc1be35391feb91d7a7e0cc81006c485d55206
BLAKE2b-256 checksum
How to use checksums
1643acdb7b91ae9681e09bf1dc5ded6c31350ca7a26e886f0fabc597daf484d3
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 14, 2026.

Transparency log

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

Download URL voodoo_store-0.2.2-cp39-abi3-macosx_10_12_x86_64.whl
Size 500.2 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
773c66835b9af62fe66141bc951bd08338b5ca9294938ce3e593ebce52070630
BLAKE2b-256 checksum
How to use checksums
8c90c955d91d1431bddabf61575f52e7d52ab3e362f31bc5937b0497dd5b046b
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 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

6 release files

This release

0.2.2 This release

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