Releases: mongodb/mongo-rust-driver
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.
Full Release Notes
Improvements
Bugfixes
v3.2.3
v3.2.2
v3.2.1
The MongoDB Rust driver team is pleased to announce the v3.2.1 release of the mongodb
crate, now available for download from crates.io.
Full Release Notes
Bug fix
Improvement
v3.2.0
The MongoDB Rust driver team is pleased to announce the v3.2.0 release of the mongodb
crate, now available for download from crates.io.
Highlighted Changes
Stable API for In-Use Encryption
The API for in-use encryption is now stable and has the same backwards compatibility guarantees as the rest of the driver. To reflect this, the feature is now named in-use-encryption
; in-use-encryption-unstable
will continue to be provided as a compatibility alias. Please note that this is a policy change only and that the API itself has not changed from the previous release.
Improved documentation for option setters
When looking at the rustdoc for methods with chainable setters for options (e.g. Collection::find
), those setters are listed directly in the rustdoc for the method rather than only being visible in the rustdoc for the type of the returned future.
Upcoming Change: EOL for Server Version 4.0
In the next minor version release (3.3.0), the Rust driver will be dropping support for connecting to mongodb server version 4.0. As of that release, the minimum supported server version will be 4.2.
Full Release Notes
Below are a selected list of changes with user impact; for a full list of changes see this GitHub query.
New Features
- RUST-2030 Add more event fields: lsid, txnNumber and disambiguatedPaths (#1197) (thanks @arthurprs!)
- RUST-2001 Allow SRV hostnames with less than three parts (#1211)
- RUST-2002 Allow update to supply sort option (#1222)
- RUST-911: Add srvServiceName URI option (#1235)
- RUST-226 Support tlsCertificateKeyFilePassword (#1256)
- RUST-1905 Add Kubernetes Support for OIDC (#1276)
- RUST-2006 Add option to configure DEK cache lifetime (#1284)
Improvements
- RUST-1795 Remove unstable from in-use encryption (#1191)
- track task spawn location for tokio instrumentation (#1201) (thanks @hds!)
- RUST-1437 Send endSessions on client shutdown (#1216)
- RUST-229 Parse IPv6 addresses in the connection string (#1242)
- RUST-1222 Cancel in-progress operations when SDAM heartbeats time out (#1249)
- RUST-2116: bump msrv to 1.71.1 (#1265)
- RUST-2103 Better documentation for action options (various)
- chore: upgrade reqwest to v0.12 and hyper to v1 (#1278) (thanks @zitsen!)
- Make EncryptedClientBuilder publicly accessible (#1282)
- RUST-1894 Retry KMS requests on transient errors (#1281)
Bugfixes
v3.1.1
v3.1.0
The MongoDB Rust driver team is pleased to announce the v3.1.0 release of the mongodb
crate, now available for download from crates.io.
This release provides compatibility with MongoDB 8.0, including support for a number of new in-use encryption features.
Full Release Notes
Features
- RUST-1813 Support for more than one KMS provider per type (#1141)
- RUST-1843 Support for QE range protocol V2 (#1132)
- RUST-1845 Support search index type field (#1147)
- RUST-1926 Support range indexes as GA (#1184)
Improvements
- RUST-1994 Implement happy eyeballs for TCP connection (#1183)
- RUST-1791 Publish an event changing topology state to unknown before closing (#1160)
- RUST-1980 Bump dependencies (#1142) (thanks @attila-lin!)
Tasks
v3.0.1
The MongoDB Rust driver team is pleased to announce the v3.0.1 release of the mongodb
crate, now available for download from crates.io.
This release fixes two bugs:
- Aggregations with both explicit sessions and custom types wouldn't compile, and
Collection::watch
didn't use theCollection
's type parameter