The MongoDB Rust driver team is pleased to announce the v3.10.0 release of the mongodb crate, now available for download from crates.io.
Important
This is a security patch release for CVE-2026-120673. Upgrading is recommended for all users.
Highlighted Changes
Fix: plaintext in Opentelemetry db.query.text attribute
This release fixes a bug that caused query documents to be recorded in Opentelemetry before automatic encryption was applied, potentially exposing the message plaintext.
Required version-to-name mapping in client metadata
Previous versions of the driver would allow the character '|' in client metadata; in order to preserve the mapping between versions and names in the final message, this is now not allowed and attempting to set or add metadata containing this character will result in an error.
MSRV increase to 1.94.1
This version of the driver now requires a minimum Rust compiler version of 1.94.1.
Full Release Notes
Impactful changes are listed below; for a complete list of changes see this GitHub query.
New Features
Improvements
- RUST-2453 Remove unnecessary dependencies (#1798)
- RUST-2517 Reduce buffer usage in OP_MSG parsing (#1801)
- RUST-2478 Enforce version-to-name mapping in client metadata (#1806)
- RUST-2468 Update getMore span nesting and cursor id recording (#1804)
- RUST-2480 Add the 'error.type' attribute to opentelemetry spans (#1811)
- Update to edition 2024 (#1824) (thanks @FalkWoldmann!)
- minor: avoid allocating unused buffers on connection check-in (#1830) (thanks @tomerab1!)
- minor: bump MSRV to 1.94.1 (#1839)
- Fix cancelled connection checkouts delaying queued requests (#1838) (thanks @janvotava!)
- RUST-2535 Implement Clone for InsertManyResult (#1848) (thanks @connorsmacd!)
Bugfixes
- RUST-2525 encrypt before recording span
- RUST-2479 Report write concern errors for dropIndexes (#1817)
- RUST-2523 Percent-encode URI string components (#1825)
- Fix SCRAM short server nonce panic and cap iteration count (#1833) (thanks @cozyGarage!)
- RUST-2526 Fix invalid extended JSON deserialization in errInfo field (#1832)
- RUST-2523 Fix more discrepancies between ConnectionString::parse and ::to_string (#1836)