Releases: mongodb/mongo-rust-driver
v3.6.0
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)
v3.5.2
v3.5.1
The MongoDB Rust driver team is pleased to announce the v3.5.1 release of the mongodb crate, now available for download from crates.io.
This release removes a check added in 3.4.0 that would reject metadata containing the | character.
Full Release Notes
Bugfixes
v3.5.0
The MongoDB Rust driver team is pleased to announce the v3.5.0 release of the mongodb crate, now available for download from crates.io.
Highlighted Changes
SOCKS5 Proxy Support
3.5.0 includes the optional socks5-proxy feature, which enables connecting to the database via a SOCKS5 proxy. This can be configured either with the proxyHost, proxyPort, proxyUsername, and proxyPassword connection string options or the ClientOptions::socks5_proxy field.
Raw Batch Cursors
This release adds support for iterating over the raw document batches returned by the server for cursors rather than individual deserialized values. For some applications, this can enable significant performance improvements; see the module documentation for more details.
AWS Authentication Property Deprecation
Specifying AWS authentication properties via the username and password in URI strings and the AWS_SESSION_TOKEN field of the auth mechanism properties doc is deprecated; using these is almost never the correct setup and can lead to the driver losing connectivity. This functionality will be removed in the next major version of the driver.
Full Release Notes
Impactful changes are listed below; for a complete list of changes see this GitHub query.
New Features
- RUST-1054 SOCKS5 Proxy Support (#1550)
- RUST-2300 Provide a raw batched cursor mode for all cursor-returning actions
Improvements
- RUST-2303 extend ALLOWED_HOSTS (#1544)
- RUST-2308 Derive Clone for ConnectionString (#1546) (thanks @jeroenvervaeke!)
- RUST-2309 Include message in display for custom errors containing strings
- RUST-2279 Add snapshot_time option for snapshot sessions (#1555)
- RUST-2321 Deprecate the socketTimeoutMS option (#1582)
- RUST-2310 Deprioritize servers in server selection for all topologies (#1576)
Bugfixes
v3.4.1
The MongoDB Rust driver team is pleased to announce the v3.4.1 release of the mongodb crate, now available for download from crates.io.
Highlighted Changes
Atlas Search Helpers
The driver now includes helpers for building Atlas Search aggregation pipelines. See the documentation for more details and examples.
OpenTelemetry Support
The driver now supports tracing database commands and driver operations for OpenTelemetry.
Text Indexes for Queryable Encryption
The driver now supports text indexes for both automatic and explicit encryption. Note that this feature is in preview and should only be used in experimental workloads. The text-indexes-unstable feature flag must be enabled to use text indexes. The GA version of this feature may not be backwards-compatible with the preview version.
Dependency Improvements
Thank you to @tottoto and @FalkWoldmann for their several contributions to update and refine our dependencies!
Full Release Notes
Impactful changes are listed below; for a complete list of changes, see this GitHub query.
New Features
- RUST-2138 Add optional support for OpenTelemetry (#1495)
- RUST-1308 Implement
DisplayandSerializeforConnectionString(#1494) - RUST-2237 Support for text indexes in explicit encryption (#1479)
- RUST-1405 Expose full server response in
Error(#1474) - RUST-2113 Add has_next to cursor API (#1485)
- RUST-2203 Allow client metadata to be appended post-construction (#1471)
- RUST-2157 Complete set of Atlas Search helpers (#1462)
- RUST-2137 Support $lookup in CSFLE and QE (#1521)
Improvements
Bug Fixes
- TUNE-449 Fix a potential duration overflow (#1530)
Note
Version 3.4.0 of the driver was skipped due to an issue in the release process.
v3.3.0
The MongoDB Rust driver team is pleased to announce the v3.3.0 release of the mongodb crate, now available for download from crates.io.
Highlighted Changes
Compatibility With bson 3.0
This version of the driver provides the bson-3 feature, which allows opting in to use the 3.0 version of the bson crate where the driver API exposes those types. Any usage without that feature (e.g. all existing projects) will continue to use the 2.x version. See the bson 3.0 migration guide for more information.
Improved Convenient Transaction API
With the stabilization of async closures, the convenient transaction API (StartTransaction::and_run) has been deprecated in favor of StartTransaction::and_run2, which provides the same functionality but without needing to box the closure or pass a distinct data argument.
GSSAPI Authentication Support
The driver now supports the use of GSSAPI for authentication of driver connections on Linux, MacOS, and Windows.
Minimum Server Version Increase
The minimum server version supported by the driver is now 4.2; support for 4.0 was deprecated in driver version 3.2.0 and has now been removed.
Full Release Notes
Impactful changes are listed below; for a complete list of changes see this GitHub query.
New Features
- RUST-1891 Implement Default on results structs (#1289)
- RUST-2140 Support the nsType field for change streams (#1316)
- RUST-2087 Add hint option to distinct (#1341)
- RUST-2090 gridfs helpers (#1351)
- RUST-2198 Add run_raw_command method (#1356) (thanks @beckerinj!)
- RUST-2166 Update convenient transactions API to use async closures (#1372)
- RUST-2217 Optionally support bson crate 3.0 (#1380)
- RUST-2235 Implement GSSAPI auth support for Linux and macOS (#1413)
- RUST-2245 Implement GSSAPI auth support for Windows (#1444)
- RUST-2078 Support QE with bulk write (#1445)
Improvements
- RUST-1765 Make slash between hosts and options in the URI optional (#1314)
- RUST-1954 Disallow commas in authMechanismProperties values (#1315)
- RUST-2171 Update rustls to 0.23 (#1322) (thanks @ctz!)
- RUST-2020 Ignore speculative authentication on reauthentication (#1320)
- RUST-2167 Deprecate hedged reads (#1330)
- RUST-2071 Increase batchSize for find when batchSize == limit (#1348)
- RUST-2095 Add an error message when marking primaries stale (#1346)
- RUST-663 Support $merge and $out executing on secondaries (#1360)
- RUST-1826 Use serde attribute to remove empty write concerns (#1392)
- RUST-2104 Implement From<std::net::SocketAddr> for ServerAddress (#1396)
- Update rustls to non-yanked version (#1439)
- RUST-1529 Use AWS SDK to get credentials (#1435)
- RUST-1529 Use AWS SDK for sigv4 signing (#1438)
- minor: include bson feature version in metadata (#1456)
- RUST-2190 Remove support for server 4.0 (#1461)
Bugfixes
- HELP-70689 Use openssl cert parsing when openssl-tls is enabled (#1302)
- HELP-68823 Fix invalid_me comparison and normalize host strings (#1319)
- RUST-2191 Fix type propagation for Aggregate::session (#1353)
- RUST-2131 Fix bulk write cursor iteration on load balanced topologies (#1358)
- RUST-2204 Enforce size limits on outgoing messages (#1369)
- RUST-2074 Fix retryability bug, add disabled test (#1427)
- RUST-2184 Accept any BSON number for CreateCollectionOptions::size (#1460)
- Always use "admin" target_db during handshake (#1463) (thanks @krinart!)
v3.2.5
The MongoDB Rust driver team is pleased to announce the v3.2.5 release of the mongodb crate, now available for download from crates.io.
This release fixes a bug that caused the driver to allow invalid TLS certificates when the URI option "tlsInsecure=false" was included in the connection string.
Full Release Notes
Bugfixes
v3.2.4
The MongoDB Rust driver team is pleased to announce the v3.2.4 release of the mongodb crate, now available for download from crates.io.