Skip to main content

dr-store

Generic append-only content-addressed object store for the dr-* stack.

dr-store owns three things and nothing else:

  1. Immutable put — an absent typed (schema, content_hash) key atomically accepts a verified complete canonical record value; replay of the same canonical value is idempotent success; different content at the same key is a typed conflict and never overwrites the stored value.
  2. Verified get — every read recomputes and verifies the Content Hash and schema declared by the ObjectReference; missing, schema-mismatched, or corrupted content fails with a typed error.
  3. Atomic key-to-reference binding — one generic compare-and-set that binds an opaque caller-owned key to an ObjectReference: an unbound key binds; the same reference replays idempotently; a different reference conflicts and never overwrites the winner. No overwrite path is exposed.

The Content Hash is the full 64-character lowercase SHA-256 digest of the complete canonical persisted record, canonicalized through dr-serialize's canonical JSON. dr-store does not invent a second canonicalization dialect, and a Content Hash is not an Identity Hash.

The vocabulary sheet (source: .defs/vocab.html) is the authoritative statement of the append-only content-addressed object storage contract this repo implements: the terms, the guarantees, what is in and out of scope, and the mapping from each term to the exported names.

Ecosystem

dr-store depends only on dr-serialize for canonical JSON and strict finite-JSON validation. It carries no Whetstone, Rollout, workflow, retry, or campaign vocabulary; the public contract is domain-neutral.

Backends

  • in-memory (MemoryBackend) — for tests and single-process use.
  • sqlite (SqliteBackend) — durable and safe under concurrent cross-process use via serialized transactions.

Both satisfy the same backend-neutral contract, exercised by a shared concurrency test proving parallel binds of one unbound key produce exactly one winner.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dr_store-0.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dr_store-0.1.0-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file dr_store-0.1.0.tar.gz.

File metadata

  • Download URL: dr_store-0.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dr_store-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c03c022638a03d8291fc55cba35ce2eb6cebc9187848fc8e844b0d44063de41d
MD5 08d52b9f16c783444a2e732718026e73
BLAKE2b-256 14b4d59cbbc852d7bc778a37f20ab2fe9245000c2259f65c2fdaaac8230f4bbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for dr_store-0.1.0.tar.gz:

Publisher: release.yml on danielle-rothermel/dr-store

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dr_store-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dr_store-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dr_store-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8a2d778814bb118e46965cd949251e15610f5ba5b1d4229360523d67cbbf8c0
MD5 6a5c8dcc055fad4e54768015b4329670
BLAKE2b-256 59a94d88f0223ba1c15301f088b290df6729854ddf83f6fde325ad9854c4884a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dr_store-0.1.0-py3-none-any.whl:

Publisher: release.yml on danielle-rothermel/dr-store

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page