Beta v0.5.1b24 — 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.

mongo-rust-driver lands as the 6th conformance gauge — 24/24 at first check

21 May 2026 · Joe Drumgoole · Releases

Summary: mongo-rust-driver lands as the 6th conformance gauge — 24/24 at first check (v0.5.2b7).

The Rust driver joins SecantusDB's driver-conformance lineup as the sixth gauge alongside pymongo, mongo-go-driver, mongo-node-driver, mongo-java-driver, and mongo-ruby-driver. The runner spawns SecantusDB on a fresh ephemeral port and runs cargo test --lib -p mongodb against a curated include set of handshake + single-collection CRUD tests, with MONGODB_URI explicitly overridden in the cargo subprocess env. The rust driver's fallback chain ($MONGODB_URI~/.mongodb_urilocalhost:27017) is short-circuited at the first step — and a belt-and-braces hello.setName == "secantus" probe at runner start adds a second layer of confirmation. A stray ambient MONGODB_URI in the developer's shell can't accidentally route the gauge at a real mongod.

The first run surfaced two real conformance gaps; this same release fixes both, taking the rust gauge from 22/24 to 24/24 (100%). listDatabases now populates sizeOnDisk per database — sum of bson-encoded doc bytes across the db's collections, the same accounting collStats and dbStats already use — with empty derived from the size and totalSize reporting the real cross-database sum. The previous placeholder sizeOnDisk: 0 failed mongo-rust-driver's test::client::list_databases assertion on populated databases. The second fix: the hello.client subdoc that drivers send for self-identification (driver name + version, OS info, platform, optional appname) is now captured per connection in the connection registry and surfaced back via currentOp as clientMetadata — letting drivers and admin tools identify their own connections, the mechanism mongo-rust-driver's test::client::metadata_sent_in_handshake exercises end-to-end.

Plumbing on the build side: a new rust_validation/ package mirroring the shape of ruby_validation/, a validate-rust invoke task added to the validate-all thread pool, the CI workflow's matrix extended with a rust entry (toolchain via dtolnay/rust-toolchain@stable; cargo cache key on the vendored driver's Cargo.lock), and validation_summary integration so the cross-driver dashboard picks up the rust numbers. The vendored mongo-rust-driver submodule brings the count of language-driver submodules to six.

Full release notes on GitHub · Install from PyPI · Tag