MongoDB Rust ドライバーの次のバージョンで導入されている新機能、改善点、修正について説明します。
3.8.2の新機能
Rustドライバー v3.8.2 のリリースには、次の変更が含まれています。
重要
Rustドライバー v3.8.2 には CVE-2026 -81526 に対する修正が含まれています。
MongoDBセキュリティ更新の最新情報については、 「 MongoDBセキュリティ情報 」を参照してください。
このリリースの詳細については、Github で v..3 8リリースノートを参照してください。2
3.8の新機能
Rust ドライバー v 3.8リリースには、次の機能、改善点、修正が含まれています。
使用中の暗号化 string API を一般提供にプロモートし、次の変更を導入します。
text-indexes-unstable機能は不要になりました。TextOptions構造体の名前がStringOptionsに変更されます。Algorithm::TextPreviewバリアントはAlgorithm::Stringに優先されるため非推奨となっています。"prefixPreview"、"suffixPreview"、"substringPreview"のクエリ タイプは非推奨となり、"prefix"、"suffix"、"substring"が推奨されます。
この API には MongoDB Server バージョン 9.0 以降が必要です。
MONGODB-AWS認証メカニズムで明示的なユーザー名、パスワード、またはAWS_SESSION_TOKENプロパティを使用することは非推奨となります。今後のドライバーリリースでは、これらのプロパティのサポートが削除されます。接続 URI 要素を含むエラーを抽出するオプションを追加します。
ReadPreferenceのコンストラクター メソッドを追加します。Client::shutdown()メソッドのパフォーマンス回帰を修正します。mongodb+srv接続文字列を使用した場合に Windows でのパフォーマンスを低下させていたhickory-resolverバグに対するカスタム DNS 構成の回避策は推奨しなくなりました。バグはアップストリームで修正されました。したがって、この回避策を適用した場合は除くことができます。
このリリースの詳細については GitHub の3 v.8 リリースノートを参照してください。
3.7 の新機能
Rust ドライバー v 3.7リリースには、次の機能、改善点、修正が含まれています。
サポートされているRustコンパイラーの最小バージョン(MSRV)を 1.88 に更新します。アップグレードする前に、開発環境でRust 1.88 以降が使用されていることを確認してください。
サーバーリソースのクリーンアップとバックグラウンドタスクの終了をより一貫して待機するための
Client::shutdown()メソッドを改善します。
このリリースの詳細については GitHub の3 v.7 リリースノートを参照してください。
3.6 の新機能
Rust ドライバー v 3.6リリースには、次の機能、改善点、修正が含まれています。
Ingress 接続レート制限機能のサポートを追加します。過負荷サーバーに接続した際の動作を改善するには、
enableOverloadRetargetingとmaxAdaptiveRetriesオプションを使用します。これらのオプションの詳細については、接続オプションの指定ガイドを参照してください。GridFSダウンロードと カーソルの反復パフォーマンスを改善します。
このリリースの詳細については GitHub の3 v.6 リリースノートを参照してください。
3.5の新機能
Rust ドライバー v 3.5リリースには、次の機能、改善点、修正が含まれています。
オプションの
socks5-proxy機能を導入します。これにより、SOCKS5 プロキシを使用してデータベースに接続できるようになります。この機能を構成するには、proxyHost、proxyPort、proxyUsername、proxyPassword接続文字列オプションまたはClientOptions::socks5_proxyフィールドを使用します。未加工のバッチするカーソルのサポートを追加しました。Rawバッチするカーソルを使用すると、逆シリアル化された個々の値ではなく、サーバーによって返された未加工のドキュメントバッチを反復処理できます。バッチするカーソルの詳細については、カーソルガイドの「raw バッチカーソルの使用 」セクションおよびraw_batch_cursor APIドキュメントを参照してください。
接続文字列と
AWS_SESSION_TOKENプロパティのユーザー名とパスワードでのAWS認証の指定を廃止します。この機能は、ドライバーの次のメジャー バージョンでは削除されます。AWS認証の詳細については、 認証ガイドのMONGODB-AWSメカニズムセクションを参照してください。socketTimeoutMSオプションを廃止します。代わりにwTimeoutMSオプションを使用してください。使用可能な接続オプションの詳細については、 「接続オプション」ガイドを参照してください。
このリリースの詳細については GitHub の3 v.5 リリースノートを参照してください。
3.4の新機能
Rust ドライバー v 3.4リリースには、次の機能、改善点、修正が含まれています。
atlas_searchモジュールを通じてタイプセーフなMongoDB 検索クエリ構築を導入します。この機能は、コンパイルタイム検証、IDE サポート、およびMongoDB 検索クエリを構築するためのスムーズなビルダパターンを提供します。型セーフなMongoDB 検索クエリの詳細については、 MongoDB 検索クエリを実行する ガイドの 型セーフなクエリ構築 セクションを参照してください。OpenTelemetry のデータベースコマンドとドライバー操作をトレースするためのサポートを追加します。
自動および明示的なクエリ可能な暗号化のテキストインデックスのサポートを追加します。Queryable Encryptionの詳細については、MongoDB ServerマニュアルのQueryable Encryptionセクションを参照してください。
このリリースの詳細については GitHub の3 v.4 リリースノートを参照してください。
3.3の新機能
Rust ドライバー v 3.3リリースには、次の機能、改善点、修正が含まれています。
重要: このリリースではMongoDB Serverバージョン 4.0 のサポートが削除され、サポートされる最小バージョンが 4.2 に引き上げられます。重大な変更に対応するために、アプリケーションに変更を加えることをお勧めします。アップグレードの詳細については、サーバー マニュアルのリリースノートセクションを参照してください。
BSON crateのバージョン 3.0 のサポートを導入します。デフォルトでは 、ドライバーは下位互換性のためにバージョン 2.15 を使用します。バージョン 3.0 を使用するには、プロジェクトの
Cargo.toml内のドライバーcrateのfeaturesリストにbson-3機能を追加します。BSON 3.0 は、下位互換性のない方法で複数の API を更新します。次の変更では、アプリケーションの更新 が必要になる場合があります。一貫したフィールドと詳細なエラー情報を持つcrate全体でエラー処理を統合する統合
bson::error::Errorタイプを導入します。BSONキーと正規表現に
&CStr型とCString型を追加し、以前はピリオドを引き起こしていた null バイトの問題を防ぎます。次の例は、&CStr型とCString型を使用してコードを更新する方法を示しています。let mut computed_key = "foo".to_owned(); computed_key.push_str("bar"); // Non-static values need to be checked at runtime let computed_key = CString::try_from(computed_key)?; let doc_buf = rawdoc! { // String literal keys in `rawdoc!` are implicitly checked at compile-time. "hello": "world", computed_key: 42, "regex": Regex { // `&CStr` implements many common traits like `ToOwned` pattern: cstr!("needle").to_owned(), options: cstr!("").to_owned(), } }; // `append` keys must now be a `&CStr` or `CString`. doc_buf.append(cstr!("a key"), "a value"); 標準のライブラリ特権経由で、未加工の型とその参照型の間のすべての変換を提供します。
serdeをデフォルトで無効になっているオプション機能にします。直列化と逆直列化関数には、わかりやすくするためにserialize_toまたはdeserialize_fromのプレフィックスが付属するようになりました。Utf8Lossyラッパー型と新しい変換メソッドにより UTF-8 の損失デコードを簡素化します。より柔軟な型変換を行うために、
serde_withcrateのserde_asアノテーションを操作するようにserdeヘルパー関数を更新します。詳細については、「データモデリング と 直列化」を参照してください。BSON.x2 からBSON3.0 に移行する詳細な手順については、Github 2の「.x3 から. への移行0 」ガイドを参照してください。
このリリースの詳細については GitHub の3 v.3 リリースノートを参照してください。
3.2の新機能
Rust ドライバー v 3.2リリースには、次の機能、改善点、修正が含まれています。
重要: 次のマイナー リリースでは、 MongoDB Serverバージョン4.0 のサポートが終了し、サポートされる最小バージョンが4.2 に引き上げられます。重大な変更に対応するために、アプリケーションに変更を加えることをお勧めします。アップグレードの詳細については、サーバー マニュアルの「 リリースノート 」セクションを参照してください。
サポートされるRustの最小バージョンを 1.71.1 に増やします。ドライバーの互換性の詳細については、互換性ページを参照してください。
ドライバーと同じ下位互換性の保証を持つ、使用中の暗号化機能を安定版としてマークします。 機能フラグの名前は
in-use-encryptionです。 これはポリシーの変更であり、 API は以前のリリースから変更されていません。部分が 3 つ未満の SRV ホスト名を許可します。
更新操作を実行するときにソート オプションを指定できるようにします。
Kubernetes環境の OIDC認証サポートを追加します。
OIDC を使用してKubernetes環境から認証するには、接続文字列で
authMechanismProperties接続オプションをENVIRONMENT:k8sに設定します。 この機能は、Amazon の Elastic Kubernetes Service、Google Kubernetes Engine、またはAzure Kubernetes Service で実行中環境に接続するときに使用できます。
このリリースの詳細については GitHub の3 v.2 リリースノートを参照してください。
3.1の新機能
Rust ドライバー v 3.1リリースには、次の機能、改善点、修正が含まれています。
同じタイプの複数のKMS ( KMS )プロバイダーのサポートを追加します。 KMSQueryable Encryptionプロバイダーの詳細については、MongoDB Server マニュアルの「 」を参照してください。
Queryable Encryption 範囲プロトコルの v 2のサポートを追加します。 Queryable Encryption の範囲インデックスは GA 版が提供されています。
MongoDB Search および MongoDB ベクトル検索 検索インデックスのプログラムによる作成を可能にするために
SearchIndexModelタイプにtypeフィールドを追加します。詳細については、MongoDB Search とベクトル検索インデックスのガイドを参照してください。TCP 接続を管理するためのアルゴリズムを実装します。このアルゴリズムの詳細については、 Rustドキュメントの write-eyeballs crate を参照してください。
ドライバーは、トポロジーが閉じられたときに
TopologyDescriptionChangedEventイベントを公開します。
このリリースの詳細については GitHub の3 v.1 リリースノートを参照してください。
3.0.1の新機能
Rust ドライバー v 3.0.1リリースには、次の機能、改善点、修正が含まれています。
明示的なセッション内で実行され、カスタム型も実装された場合に集計がコンパイルされない問題を修正します。
Collection::watch()メソッドが実行されるCollectionインスタンスの型パラメータを使用しなかった問題を修正しました。
このリリースの詳細については、Github で v..3 0リリースノートを参照してください。1
3.0の新機能
Rust ドライバー v 3.0リリースには、次の機能、改善点、修正が含まれています。
オプションを渡し、セッションを開始するために次のAPIの変更を導入します。
非同期メソッド オプションを渡すには、オプション 構造パラメーターを渡す代わりに、オプション ビルダ メソッドをメソッド呼び出しに直接連鎖させます。
同期メソッド オプションを設定するには、オプション ビルダ メソッドをメソッド呼び出しに連結し、
run()メソッドを呼び出します。別のオプション構造体を作成する必要がある場合は、
with_options()メソッドを メソッド呼び出しにチェーンし、オプション構造体をパラメーターとして渡します。セッションを開始するには、
_with_sessionサフィックスを持つ別のメソッドを使用する代わりに、session()メソッドを メソッド呼び出しに連鎖させます。
一括書き込み操作のサポートを追加しました。 これらの操作の詳細については、一括操作のガイドを参照してください。
イベントモニタリングに必要なディレクティブ コードの量を減らすために、
EventHandlerタイプを導入します。EventHandler型を使用する例については、「監視」セクションのガイドを参照してください。async-std非同期ランタイムのサポートを廃止します。 この変更の詳細については、「 非同期 API と同期 API ガイドの「 非同期ランタイムの構成」セクションを参照してください。Rust ドライバー アプリケーションが
no-default-featuresコマンドライン フラグを使用してコンパイルされている場合は、compat機能を使用する必要があります。rustlsとdns-resolutionの機能は任意になりました。bson-*ドライバー機能のサポートを廃止します。 これらの機能を選択するには、アプリケーションにbsonを直接依存関係として含めます。読み取り保証 (read concern) 定数と書込み保証 (write concern) 定数のサポートを廃止します。 代わりに、ヘルパー メソッドを使用して
ReadConcernとWriteConcernの値を設定します。Collection<T>タイプにSend + Syncの制約を追加します。コンプレッサー機能が有効になっていない場合は、
ClientOptions::compressorフィールドを削除します。ReadPreferenceOptionsフィールドのタイプを変更します。 これらのフィールドのタイプはOption<ReadPreferenceOptions>になりました。CollectionOptions::human_readable_serializationオプションを削除します。 代わりに、bson::HumanReadableラッパー型を使用してユーザーデータを人間が判読できる形式に直列化します。すべてのオプション構造体ビルダに
Into特権を介した値変換のサポートを追加します。AggregateOptions、FindOptions、FindOneOptions構造体のcomment_bsonフィールドの名前をcommentに変更します。
このリリースの詳細については、Github で v.3 0移行ガイド を参照してください。
2.8 の新機能
Rust ドライバー v2.8 のリリースには、次の機能、改善点、修正が含まれています。
MongoDB MongoDB 検索インデックスマネジメント メソッドを追加します。これらのメソッドの詳細については、MongoDB Search とベクトル検索インデックスのガイドを参照してください。
次の動作を実装することで、ネットワーク接続と操作の信頼性を向上させます。
ドライバーが発生したエラーの種類の範囲が再試行されます。
ネットワーク接続の問題が発生している
mongosインスタンスの再試行を回避します。
このリリースの詳細については、 GitHub 28の v..0 リリースのハイライト を参照してください。
2.7 の新機能
Rust ドライバー v2.7 のリリースには、次の機能、改善点、修正が含まれています。
CollectionOptions構造体にhuman_readable_serializationオプションを追加します。 このオプションは、CRUD メソッドに渡される値を人間が判読できる形式として直列化するようにドライバーに指示します。 このオプションのデフォルト値はfalseです。警告
human_readable_serializationの値をtrueに設定すると、挿入操作の実行が遅くなる可能性があります。データベースコマンドを実行し、応答を
Cursorタイプとして取得するためのrun_cursor_command()メソッドを追加します。 詳細については、「コマンドの実行」ガイドを参照してください。tracing-unstable機能フラグを使用すると、SDAM イベント ログを追加します。Clientと接続管理に次の構成を追加します。max_connecting:ClientOptions構造体に設定して、並行して確立できる接続数を指定できるオプション。このオプションの詳細については、 パフォーマンスに関する考慮事項 のガイドの 概要 を参照してください。Client::warm_connection_pool(): 接続プールに新しい接続を作成し、より予測可能なパフォーマンスを提供するために使用できるメソッド。 このメソッドを使用すると、ドライバーはmin_pool_size設定で指定された数まで接続の作成を試みます。Client::shutdown(): バックグラウンドのタスクを停止し、ハンドラーが削除されるのを待機するために使用できるメソッド。 このメソッドは、イベント ハンドラーを使用して外部リソースを参照する場合に役立ちます。これらのハンドラーは、Clientが閉じられた後でもタスクで使用される可能性があるためです。
このリリースの詳細については、 GitHub 27の v..0 リリースのハイライト を参照してください。
2.6 の新機能
Rust ドライバー v2.6 のリリースには、次の機能、改善点、修正が含まれています。
Amazon Web ServicesElasticKubernetes Service(EKS)アカウントなどのサービスアカウントに対して Identity and Access Management(IAM)ロールをサポートします。
Cloud KMS(Cloud Key Management System)を使用する場合、GCP 接続サービス アカウントをサポートします。
Azure KMS からのオンデマンド CSFLE 認証情報の取得をサポートします。
Namespace構造体にFromStr特性を実装します。 この変更により、"testdb.testcollection"などのデータベース名とコレクション名を含む string をNamespaceインスタンスに解析できます。ConnectionInfo構造体にserver_idをi64タイプとして含めます。Cursorによって参照される値のほとんどの型制約を削除します。等価クエリで Queryable Encryption 機能を使用するために、ドライバーの依存関係内の
libmongocryptバージョンを更新します。
このリリースの詳細については、 GitHub 26の v..0 リリースのハイライト を参照してください。