Learn about new features, improvements, and fixes introduced in the following versions of the MongoDB Rust Driver:
What's New in 3.1
The Rust driver v3.1 release includes the following features, improvements, and fixes:
Adds support for more than one Key Management Service (KMS) provider of the same type. To learn more about KMS providers, see Queryable Encryption in the MongoDB Server manual.
Adds support for v2 of the Queryable Encryption range protocol. Range indexes for Queryable Encryption are now GA.
Adds the
typefield to theSearchIndexModeltype to allow programmatic creation of Atlas Search and Atlas Vector Search indexes. To learn more, see the Atlas Search and Vector Search Indexes guide.Implements the Happy Eyeballs algorithm for managing TCP connections. To learn more about this algorithm, see the Rust documentation for the happy_eyeballs crate.
The driver publishes a
TopologyDescriptionChangedEventevent when a topology closes.
To learn more about this release, see the v3.1 Release Notes on GitHub.
What's New in 3.0.1
The Rust driver v3.0.1 release includes the following features, improvements, and fixes:
Fixes an issue in which aggregations wouldn't compile when run within explicit sessions and also implemented custom types.
Fixes an issue in which the
Collection::watch()method didn't use the type parameter of theCollectioninstance it was run on.
To learn more about this release, see the v3.0.1 Release Notes on GitHub.
What's New in 3.0
The Rust driver v3.0 release includes the following features, improvements, and fixes:
Implements a fluent API, which introduces the following syntax changes for passing options and starting sessions:
To set asynchronous method options, chain option builder methods directly to the method call instead of passing an options struct parameter.
To set synchronous method options, chain option builder methods to the method call, then call the
run()method.If you must construct a separate options struct, chain the
with_options()method to the method call and pass your options struct as a parameter.To start a session, chain the
session()method to the method call instead of using a separate method that has a_with_sessionsuffix.
Adds support for bulk write operations. To learn more about these operations, see the Bulk Operations guide.
Introduces the
EventHandlertype to reduce the amount of boilerplate code required for event monitoring. For examples that use theEventHandlertype, see the guides in the Monitoring section.Removes support for the
async-stdasynchronous runtime. To learn more about this change, see the Configure the Asynchronous Runtime section of the Asynchronous and Synchronous APIs guide.Requires the use of a
compatfeature if a Rust driver application is compiled with theno-default-featurescommand line flag. Therustlsanddns-resolutionfeatures are now optional.Removes support for the
bson-*driver features. You can select these features by includingbsonas a direct dependency in your application.Removes support for read and write concern constants. Instead, use helper methods to set
ReadConcernandWriteConcernvalues.Adds
Send + Syncconstraints to theCollection<T>type.Removes the
ClientOptions::compressorfield if no compressor features are enabled.Changes the type of
ReadPreferenceOptionsfields. These fields now have aOption<ReadPreferenceOptions>type.Removes the
CollectionOptions::human_readable_serializationoption. Instead, use thebson::HumanReadablewrapper type to serialize user data into human-readable form.Adds support for value conversion through the
Intotrait for all option struct builders.Renames the
comment_bsonfield tocommentforAggregateOptions,FindOptions, andFindOneOptionsstructs.
To learn more about this release, see the v3.0 Migration Guide on GitHub.
What's New in 2.8
The Rust driver v2.8 release includes the following features, improvements, and fixes:
Adds MongoDB Atlas Search index management methods. To learn more about these methods, see the Atlas Search and Vector Search Indexes guide.
Improves network connectivity and operation reliability by implementing the following behaviors:
Performs retries on a greater range of error types that the driver encounters.
Avoids retries for
mongosinstances experiencing network connectivity issues.
To learn more about this release, see the v2.8.0 Release Highlights on GitHub.
What's New in 2.7
The Rust driver v2.7 release includes the following features, improvements, and fixes:
Adds the
human_readable_serializationoption to theCollectionOptionsstruct. This option instructs the driver to serialize values passed to CRUD methods as a human-readable format. The default value of this option isfalse.Warning
If you set the value of
human_readable_serializationtotrue, your insert operations might run more slowly.Adds the
run_cursor_command()method to run a database command and retrieve the response as aCursortype. To learn more, see the Run a Command guide.Adds SDAM event logging when you use the
tracing-unstablefeature flag.Adds the following configurations for
Clientand connection management:max_connecting: an option that you can set in aClientOptionsstruct to specify how many connections you can establish in parallel. To learn more about this option, see Connection Pool in the Performance Considerations guide.Client::warm_connection_pool(): a method that you can use to create new connections in the connection pool to provide more predictable performance. When you use this method, the driver attempts to create connections up to the number specified in themin_pool_sizesetting.Client::shutdown(): a method that you can use to stop background tasks and wait for handlers to drop. This method can be helpful if you use event handlers to reference external resources, as these handlers might be used in tasks even after theClientis closed.
To learn more about this release, see the v2.7.0 Release Highlights on GitHub.
What's New in 2.6
The Rust driver v2.6 release includes the following features, improvements, and fixes:
Supports AWS Identity and Access Management (IAM) roles for service accounts, such as Elastic Kubernetes Service (EKS) accounts.
Supports GCP-attached service accounts when using the Cloud Key Management System (KMS).
Supports fetching on-demand CSFLE credentials from the Azure KMS.
Implements the
FromStrtrait for theNamespacestruct. This change allows you to parse a string that includes a database and collection name, such as"testdb.testcollection"into aNamespaceinstance.Includes the
server_idin aConnectionInfostruct as ani64type.Removes most type constraints on values referenced by a
Cursor.Updates the
libmongocryptversion in the driver dependencies in order to use the Queryable Encryption feature with equality queries.
To learn more about this release, see the v2.6.0 Release Highlights on GitHub.