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.

Blog

Updates, design notes, and deep dives from the SecantusDB project.

  • secantus-pg 0.1.0-beta.11: refusing a user there is no role for

    11 October 2026 · Joe Drumgoole

    Summary: secantus-pg 0.1.0-beta.11 adds --refuse-unknown-users. With it, the Rust PostgreSQL server asks a user name it has no role for to give a password, and the login fails as it does on PostgreSQL. Without it nothing changes. Of 219 login scenarios run against PostgreSQL 15.19, all …

  • secantus-mdb 0.5.3-beta.181 fixes distinct, singleBatch and tailable cursors

    11 October 2026 · Joe Drumgoole

    Summary: secantus-mdb 0.5.3-beta.181 makes distinct compare by value, singleBatch honour batchSize, tailable cursors keep their filter, and min and max bound index keys, after a comparison of the cursor commands with mongod.

    distinct on secantusd-rs could return the same number more than once.

    db.prices.insert_many([{"p …
  • secantus-mdb 0.5.3-beta.180 holds transactions and retryable writes to mongod's rules

    11 October 2026 · Joe Drumgoole

    Summary: secantus-mdb 0.5.3-beta.180 checks the session fields on every command, remembers a retryable write statement by statement, reports a commit that failed, and aborts an abandoned transaction when its lifetime runs out.

    If your tests use transactions or retryable writes on secantusd-rs, upgrade. Four things in this …

  • secantus-mdb 0.5.3-beta.179 stops $out dropping a collection's validator, and checks time-series collections

    11 October 2026 · Joe Drumgoole

    Summary: secantus-mdb 0.5.3-beta.179 makes $out keep its target's validator and indexes, and gives time-series collections the rules mongod applies: a checked definition, a date in every measurement, and meta-only updates.

    If a pipeline on secantusd-rs ends in $out and the target collection has a validator or indexes …

  • secantus-pg 0.1.0-beta.10: client certificates and channel binding

    11 October 2026 · Joe Drumgoole

    Summary: secantus-pg 0.1.0-beta.10 lets the Rust PostgreSQL server say what a TLS connection must show: a client certificate, one that names the user, or one in place of the password. A password login over TLS is offered SCRAM channel binding, the server can refuse a connection in …

  • secantus-mdb 0.5.3-beta.178 sorts and matches strings by collation the way mongod does

    11 October 2026 · Joe Drumgoole

    Summary: secantus-mdb 0.5.3-beta.178 replaces its hand-written collation with ICU4X, makes a collation reach aggregation, defaults and unique indexes, and fixes renameCollection dropping a collection's validator.

    If your tests use a collation on secantusd-rs, this release changes their answers, and the new ones are mongod's.

    people.find …
  • secantus-pg 0.1.0-beta.9: TLS

    10 October 2026 · Joe Drumgoole

    Summary: secantus-pg 0.1.0-beta.9 offers TLS. Given a certificate and its key, the Rust PostgreSQL server completes the handshake a client asks for, and psycopg gets the same answer from it as from PostgreSQL 15.19 for every sslmode. Channel binding and client certificates are not in it …

  • secantus-pg 0.1.0-beta.8: a statement sent as text reuses its plan

    10 October 2026 · Joe Drumgoole

    Summary: secantus-pg 0.1.0-beta.8 plans an unprepared statement once per shape, not once per literal: one row by primary key with a different value each time went from 111 to 43 microseconds on a Mac, against PostgreSQL 15's 40. It also hides the tables of public when public …

  • secantus-mdb 0.5.3-beta.177 stops a partial TTL index deleting documents it does not cover

    10 October 2026 · Joe Drumgoole

    Summary: secantus-mdb 0.5.3-beta.177 fixes TTL indexes that deleted too much and told nobody, and a bulkWrite command that applied half a malformed batch, each found by running the same commands against mongod 8.2.11.

    If you use a TTL index with a partialFilterExpression on secantusd-rs 0 …

  • secantus-mdb 0.5.3-beta.176 stops dropIndexes from dropping the _id index

    10 October 2026 · Joe Drumgoole

    Summary: secantus-mdb 0.5.3-beta.176 and 0.5.3-beta.175 fix a run of wrong answers on capped collections, views, document validation and indexes, each found by running the same commands against mongod 8.2.11.

    If you run secantusd-rs 0.5.3-beta.174 or earlier, upgrade. The two …