Files
alkstore/CHANGELOG.md
T

2.1 KiB

Changelog

All notable changes to this crate are documented here. The format is based on Keep a Changelog, and this crate adheres to Semantic Versioning.

0.1.0 - 2026-10-11

Initial crates.io release of the alkstore family: one reactive store contract (the pinned contract v1 surface) with three engine implementations.

The core crate (alkstore) defines the unified trait surface — notify/listen with transactional wake discipline, streams with per-consumer offsets and consumer-invoked trim_to, queues with visibility-timeout claims, backoff, dead-lettering and the opt-in retention sweep, TTL named locks, the outbox helper (outbox_enqueue_tx + run_once), the @every scheduler, and the caller-held TxHandle seam (drop = rollback) — plus the value types, error taxonomy, and the naming / reserved-namespace contract. No runtime capability surface: engine identity is compile-time, and the deployment honesty lives in the engine crates' postures plus the documented deployment matrix (ADR-016).

Three engines ship the same contract v1 surface:

  • alkstore-sqlite — single-host, file-backed, over rusqlite and the forked honker-core substrate carried in-tree (bridged sync/async seam, data_version watcher wake).
  • alkstore-postgres — multi-host native, natively async over tokio-postgres + deadpool-postgres with a dedicated non-pooled LISTEN connection per LISTEN-ing process.
  • alkstore-mem — honest-ephemeral in-process state: full contract v1, no durability, never fleet-valid; the wasm32-compile-clean family member.

All three engines run the same contract-suite rows (alkstore-contract-suite) against their own factory — three engines, one pinned contract. The contract version is the core crate's semver (ADR-017); this 0.1.0 release closes the pre-release contract-change window, and ADR-017 §2's class-1 amendment events terminate at it.