Docs Menu
Docs Home
/ / /
Rust ドライバー

新機能

MongoDB Rust ドライバーの次のバージョンで導入されている新機能、改善点、修正について説明します。

  • バージョン3.3

  • バージョン 3.2

  • バージョン3.1

  • バージョン3.0.1

  • バージョン 3.0

  • バージョン2.8

  • バージョン2.7

  • バージョン2.6

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_with crateの serde_as アノテーションを操作するように serdeヘルパー関数を更新します。詳細については、データモデリングと直列化を参照してください。

    • BSON.x2 からBSON3.0 に移行する詳細な手順については、Github で「.x から への移行 」ガイドを参照してください。23.0

このリリースの詳細については、 Githubの v3.3 リリースノート を参照してください。

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の v3.2 リリースノート を参照してください。

Rust ドライバー v 3.1リリースには、次の機能、改善点、修正が含まれています。

  • 同じタイプの複数のKMS ( KMS )プロバイダーのサポートを追加します。 KMSQueryable Encryptionプロバイダーの詳細については、MongoDB Server マニュアルの「 」を参照してください。

  • Queryable Encryption 範囲プロトコルの v 2のサポートを追加します。 Queryable Encryption の範囲インデックスは GA 版が提供されています。

  • Atlas Search および Atlas ベクトル検索インデックスのプログラムによる作成を可能にするために SearchIndexModel タイプに typeフィールドを追加します。 詳細については、 Atlas Search とベクトル検索インデックスのガイド を参照してください。

  • TCP 接続を管理するためのアルゴリズムを実装します。このアルゴリズムの詳細については、 Rustドキュメントの write-eyeballs crate を参照してください。

  • ドライバーは、トポロジーが閉じられたときにTopologyDescriptionChangedEventイベントを公開します。

このリリースの詳細については、 Githubの v3.1 リリースノート を参照してください。

Rust ドライバー v 3.0.1リリースには、次の機能、改善点、修正が含まれています。

  • 明示的なセッション内で実行され、カスタム型も実装された場合に集計がコンパイルされない問題を修正します。

  • Collection::watch()メソッドが実行されるCollectionインスタンスの型パラメータを使用しなかった問題を修正しました。

このリリースの詳細については、 Githubの v3.0.1 リリースノート を参照してください。

Rust ドライバー v 3.0リリースには、次の機能、改善点、修正が含まれています。

  • オプションを渡し、セッションを開始するために次のAPIの変更を導入します。

    • 非同期メソッド オプションを渡すには、オプション 構造パラメーターを渡す代わりに、オプション ビルダ メソッドをメソッド呼び出しに直接連鎖させます。

    • 同期メソッド オプションを設定するには、オプション ビルダ メソッドをメソッド呼び出しに連結し、 run()メソッドを呼び出します。

    • 別のオプション構造体を作成する必要がある場合は、 with_options()メソッドを メソッド呼び出しにチェーンし、オプション構造体をパラメーターとして渡します。

    • セッションを開始するには、 _with_sessionサフィックスを持つ別のメソッドを使用する代わりに、 session()メソッドを メソッド呼び出しに連鎖させます。

  • 一括書き込み操作のサポートを追加しました。 これらの操作の詳細については、一括操作のガイドを参照してください。

  • イベントモニタリングに必要なディレクティブ コードの量を減らすために、 EventHandler タイプを導入します。EventHandler 型を使用する例については、「監視」セクションのガイドを参照してください。

  • async-std非同期ランタイムのサポートを廃止します。 この変更の詳細については、「 非同期 API と同期 API ガイドの「 非同期ランタイムの構成」セクションを参照してください。

  • Rust ドライバー アプリケーションがno-default-featuresコマンドライン フラグを使用してコンパイルされている場合は、 compat機能を使用する必要があります。 rustlsdns-resolutionの機能は任意になりました。

  • bson-*ドライバー機能のサポートを廃止します。 これらの機能を選択するには、アプリケーションにbsonを直接依存関係として含めます。

  • 読み取り保証 (read concern) 定数と書込み保証 (write concern) 定数のサポートを廃止します。 代わりに、ヘルパー メソッドを使用してReadConcernWriteConcernの値を設定します。

  • Collection<T>タイプにSend + Syncの制約を追加します。

  • コンプレッサー機能が有効になっていない場合は、 ClientOptions::compressorフィールドを削除します。

  • ReadPreferenceOptionsフィールドのタイプを変更します。 これらのフィールドのタイプはOption<ReadPreferenceOptions>になりました。

  • CollectionOptions::human_readable_serializationオプションを削除します。 代わりに、 bson::HumanReadableラッパー型を使用してユーザーデータを人間が判読できる形式に直列化します。

  • すべてのオプション構造体ビルダにInto特権を介した値変換のサポートを追加します。

  • AggregateOptionsFindOptionsFindOneOptions構造体のcomment_bsonフィールドの名前をcommentに変更します。

このリリースの詳細については、 Githubの v3.0 移行ガイド を参照してください。

Rust ドライバー v2.8 のリリースには、次の機能、改善点、修正が含まれています。

  • MongoDB Atlas Searchインデックスマネジメントメソッドを追加します。これらのメソッドの詳細については、「Atlas Search とベクトル検索インデックスのガイド」を参照してください。

  • 次の動作を実装することで、ネットワーク接続と操作の信頼性を向上させます。

    • ドライバーが発生したエラーの種類の範囲が再試行されます。

    • ネットワーク接続の問題が発生しているmongosインスタンスの再試行を回避します。

このリリースの詳細については、Github の v2.8.0 リリースのハイライト を参照してください。

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 の v2.7.0 リリースのハイライト を参照してください。

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_idi64タイプとして含めます。

  • Cursorによって参照される値のほとんどの型制約を削除します。

  • 等価クエリで Queryable Encryption 機能を使用するために、ドライバーの依存関係内のlibmongocryptバージョンを更新します。

このリリースの詳細については、Github の v2.6.0 リリースのハイライト を参照してください。

戻る

クイック リファレンス

項目一覧