mongo-rust-driver lands as the 6th conformance gauge — 24/24 at first check
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_uri → localhost: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.