The MongoDB Rust driver team is pleased to announce the v3.6.0 release of the mongodb crate, now available for download from crates.io.
Highlighted Changes
Client Backpressure
With 3.6.0, the client has a variety of changes to improve behavior when connected to overloaded servers, most notably retrying against a different server (if available). For more details on server load-shedding, see the documentation for Intelligent Workload Management.
Full Release Notes
Impactful changes are listed below; for a complete list of changes see this GitHub query.
Improvements
- RUST-2268 Add jitter to convenient transaction retries (#1588)
- RUST-2267 Avoid clearing connection pool when server connection rate limiter triggers (#1584)
- RUST-2324 Implement Cursor on top of RawBatchCursor (#1620)
- RUST-2273 Exponential backoff and jitter in retry loops (#1626)
- RUST-2325 Use raw batch iterator for gridfs downloads (#1632)
- RUST-2385 Finalize client backpressure changes (#1654)
- minor: bump MSRV to 1.85 (#1670)
- Add feature flag to use aws-lc-rs instead of ring as the rustls crypto provider (#1662) (thanks @TimTheBig!)
Bugfixes
- RUST-2344 Encode values in GCP/Azure OIDC URLs (#1593)
- RUST-2346 Remove check for '|' in metadata (#1599)
- RUST-2363 ensure empty tag matches servers with no tag set (#1616)
- RUST-2335 Fix and test logic for error comparison on retry (#1637)
- RUST-2390 Fix Cursor::has_next (#1652)
- RUST-2394 Fix a race condition deadlock in Client::shutdown (#1658)
- RUST-2400 Fix and test retry behavior for a mix of overload and non-overload errors (#1669)