Beta Past initial proving, but the Python API surface may still shift before 1.0. WiredTiger on-disk format is stable, but there's no migration tool yet — don't put production data here.

Measured everywhere: a concurrent test suite that caught real bugs, three-way benchmarks, and self-hosted docs

17 July 2026 · Joe Drumgoole · Releases

Summary: Measured everywhere: a concurrent test suite that caught real bugs, three-way benchmarks, and self-hosted docs (v0.5.4b236).

SecantusDB now measures itself against real mongod in both dimensions. The per-operation benchmark became a three-way comparison — the Rust server lands at 2.1×–4.5× of mongod, roughly 2.7×–5.2× faster than the Python server workload-for-workload — and a new concurrent test suite (bench.concurrency --server all) sweeps 1–8 parallel writers across the Python server, the Rust server, and mongod. That harness paid for itself immediately: its first runs caught a write-path bug where a WiredTiger transaction marked rollback-only by a concurrent competitor surfaced to clients as a generic InternalError instead of a retryable write conflict, plus a Windows-only ordering bug in the admin console's recent-connections list.

The conflict story now matches mongod end to end. Commit-time conflicts map to the same retryable WriteConflict machinery as operation-time ones; plain writes retry without a deadline — a client never sees WriteConflict outside a multi-document transaction, exactly like mongod's writeConflictRetry; and the two hot-path writes to the shared oplog-metadata row (per oplog emit, and per cluster-time mint — the latter ran on every driver heartbeat) are gone, with restart monotonicity guaranteed structurally by a one-second recovery bump of the cluster clock.

The documentation moved home. Both docs trees — the main reference and a new dedicated Rust-server tree — are now built and deployed with the website at secantusdb.com/docs/ and /docs/rust/, wearing the site's banner; readthedocs.org keeps a pointer banner to the new location, and the release pipeline dropped its four Read-the-Docs legs. The SQL server kept marching on the psycopg gauge: range/multirange parameters as first-class values, enum result OIDs in RowDescription, composite-type materialization, JSON/datetime binary codec fidelity, and a batch of protocol quick-wins.

Full release notes on GitHub · Install from PyPI · Tag