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 운전자 v3.3 출시하다 에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 중요: 이 출시하다 MongoDB Server 버전 4.0 에 대한 지원 중단되고 지원되는 최소 버전이 4.2으로 상향 조정됩니다. 호환성이 손상되는 변경을 수용할 수 있도록 애플리케이션 을 변경하는 것이 좋습니다. 업그레이드에 대한 자세한 학습 은 서버 매뉴얼의 릴리스 노트 섹션을 참조하세요.

  • BSON 크레이트의 버전 3.0 에 대한 지원 도입합니다. 기본값 으로 운전자 이전 버전과의 호환성을 위해 버전 2.15 을 사용합니다. 버전 3.0을 사용하려면 프로젝트의 Cargo.toml에 있는 운전자 크레이트에 대한 features 목록에 bson-3 기능 추가합니다. BSON 3.0 이전 버전과 호환되지 않는 방식으로 여러 API를 업데이트합니다. 다음 변경 사항에는 애플리케이션 업데이트가 필요할 수 있습니다.

    • 일관적인 필드와 세분화된 오류 정보를 사용하여 크레이트 전체의 오류 처리를 통합하는 통합 bson::error::Error 유형을 도입합니다.

    • 이전에 패닉을 일으킨 널 바이트 문제를 방지하기 위해 BSON 키 및 정규 표현식에 &CStrCString 유형을 추가합니다. 다음 예시 &CStrCString 유형을 사용하여 코드를 업데이트 방법을 보여 줍니다.

      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 크레이트의 serde_as 주석과 함께 작동하도록 serde 헬퍼 함수를 업데이트합니다. 자세한 내용은 데이터 모델링 및 직렬화참조하세요.

    • BSON 2.x에서 BSON 3.0으로 마이그레이션하는 방법에 대한 자세한 지침은 Github 의 2.x에서 3.0 으로 마이그레이션 가이드 를 참조하세요.

이 출시하다 에 대해 자세히 학습 Github 의 v3.3 릴리스 노트 참조하세요.

Rust 운전자 v3.2 출시하다 에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 중요: 다음 마이너 출시하다 MongoDB Server 버전 에 4.0 대한 지원 중단되고 지원되는 최소 버전이 4.2 으로 상향됩니다. 호환성이 손상되는 변경을 수용할 수 있도록 애플리케이션 을 변경하는 것이 좋습니다. 업그레이드에 대한 자세한 학습 은 서버 매뉴얼의 릴리스 노트 섹션을 참조하세요.

  • 최소 지원 Rust 버전을 1.71.1으로 상향합니다. 운전자 호환성에 대해 자세히 학습 호환성 가이드 참조하세요.

  • 사용 중인 암호화 기능 운전자 와 동일한 이전 버전과의 호환성 보장 으로 안정됨으로 표시합니다. 기능 플래그의 이름은 in-use-encryption입니다. 이는 정책 변경 사항이며 이전 출시하다 와 API 변경되지 않았습니다.

  • 세 부분 미만으로 구성된 SRV 호스트 이름을 허용합니다.

  • 업데이트 작업을 수행할 때 정렬 옵션을 제공할 수 있습니다.

  • Kubernetes 환경에 대한 OIDC 인증 지원 추가합니다.

    OIDC를 사용하여 Kubernetes 환경에서 인증하려면 연결 문자열 에서 authMechanismProperties 연결 옵션을 ENVIRONMENT:k8s(으)로 설정하다 . Amazon의 Elastic Kubernetes Service, Google Kubernetes Engine 또는 Azure Kubernetes Service에서 실행 환경에 연결할 때 이 기능 사용할 수 있습니다.

이 출시하다 에 대해 자세히 학습 Github 의 v3.2 릴리스 노트 참조하세요.

Rust 운전자 v3.1 출시하다 에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 동일한 유형의 둘 이상의 KMS (KMS) 제공자 에 대한 지원 을 추가합니다. KMS 제공자에 학습 보려면 MongoDB Server 매뉴얼의 Queryable Encryption 을 참조하세요.

  • Queryable Encryption 범위 프로토콜 의 v2 에 대한 지원 을 추가합니다. Queryable Encryption 에 대한 범위 인덱스가 정식 출시되었습니다.

  • SearchIndexModel 유형에 type 필드 추가하여 Atlas Search 및 Atlas Vector Search 인덱스를 프로그래밍 방식으로 만들 수 있습니다. 자세한 학습 은 Atlas Search 및 Vector Search 인덱스 가이드 참조하세요.

  • TCP 연결을 관리하기 위한 해피 아이볼 알고리즘 구현합니다. 이 알고리즘에 대해 자세히 학습하려면 happy_eyeballs 크레이트에 대한 Rust 문서를 참조하세요.

  • 운전자 는 토폴로지 가 닫힐 때 TopologyDescriptionChangedEvent 이벤트 를 게시합니다.

이 출시하다 에 대해 자세히 학습 Github 의 v3.1 릴리스 노트 참조하세요.

Rust 운전자 v3.0.1 출시하다 에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 애그리게이션이 명시적 세션 및 사용자 지정 유형 구현 내에서 실행 때 컴파일되지 않는 문제를 수정합니다.

  • Collection::watch() 메서드가 실행 된 Collection 인스턴스 의 유형 매개변수를 사용하지 않던 문제를 수정합니다.

이 릴리스에 대해 자세히 알아보려면 Github에서 v3.0.1 릴리스 노트를 참조하세요.

Rust 운전자 v3.0 출시하다 에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • 옵션을 전달하고 세션을 시작할 때 다음과 같은 구문 변경을 도입하는 유창한 API 를 구현합니다.

    • 비동기 메서드 옵션을 설정하다 하려면 options 구조체 매개변수를 전달하는 대신 옵션 빌더 메서드를 메서드 호출에 직접 연결합니다.

    • 동기 메서드 옵션을 설정하다 하려면 옵션 빌더 메서드를 메서드 호출에 연결한 다음 run() 메서드를 호출합니다.

    • 별도의 options 구조체를 구성해야 하는 경우 with_options() 메서드를 메서드 호출에 연결하고 options 구조체를 매개 변수로 전달합니다.

    • 세션을 시작하려면 접미사가 _with_session 인 별도의 메서드를 사용하는 대신 session() 메서드를 메서드 호출에 연결합니다.

  • 대량 쓰기 (write) 작업에 대한 지원 을 추가합니다. 이러한 작업에 학습 보려면 대량 작업 가이드 를 참조하세요.

  • 이벤트 모니터링 에 필요한 상용구 코드의 양을 줄이기 위해 EventHandler 유형을 도입합니다. EventHandler 유형을 사용하는 예는 모니터링 섹션의 가이드를 참조하세요.

  • async-std 비동기 런타임에 대한 지원 을 제거합니다. 이 변경 사항에 학습 보려면 비동기 및 동기 API 가이드 의 비동기 런타임 구성 섹션을 참조하세요.

  • Rust 운전자 애플리케이션 이 no-default-features 명령줄 플래그로 컴파일되는 경우 compat 기능 을 사용해야 합니다. rustlsdns-resolution 기능은 이제 선택 사항입니다.

  • bson-* 운전자 기능에 대한 지원 을 제거합니다. 애플리케이션 에 bson 을(를) 직접 종속성으로 포함하여 이러한 기능을 선택할 수 있습니다.

  • 읽기 및 쓰기 고려 (write concern) 상수에 대한 지원 을 제거합니다. 대신 헬퍼 메서드를 사용하여 ReadConcernWriteConcern 값을 설정하다 합니다.

  • Collection<T> 유형에 Send + Sync 제약 조건을 추가합니다.

  • 압축기 기능이 활성화되지 않은 경우 ClientOptions::compressor 필드 를 제거합니다.

  • ReadPreferenceOptions 필드의 유형을 변경합니다. 이제 이러한 필드에는 Option<ReadPreferenceOptions> 유형이 있습니다.

  • CollectionOptions::human_readable_serialization 옵션을 제거합니다. 대신 bson::HumanReadable 래퍼 유형을 사용하여 사용자 데이터를 사람이 읽을 수 있는 형식으로 직렬화합니다.

  • 모든 옵션 구조체 빌더 에 대해 Into 트레이트를 통한 값 변환에 대한 지원 을 추가합니다.

  • AggregateOptions, FindOptionsFindOneOptions 구조체에 대해 comment_bson 필드 의 이름을 comment 로 변경합니다.

이 출시하다 에 대해 자세히 3.0 학습 Github 의 v 마이그레이션 가이드를 참조하세요.

Rust 드라이버 v2.8 릴리스에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • MongoDB Atlas Search 인덱스 관리 메서드를 추가합니다. 이러한 메서드에 대해 자세히 학습하려면 Atlas Search 및 Vector 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 릴리스에는 다음과 같은 기능, 개선 사항 및 수정 사항이 포함되어 있습니다.

  • Elastic Kubernetes Service(EKS) 계정과 같은 서비스 계정에 대한 Amazon Web Services Identity and Access Management(IAM) 역할을 지원합니다.

  • cloud KMS(키 관리 시스템)를 사용할 때 GCP 연결 서비스 계정을 지원합니다.

  • Azure KMS에서 온디맨드 CSFLE 자격 증명 가져오기를 지원합니다.

  • Namespace 구조체에 대한 FromStr 특성을 구현합니다. 이 변경을 통해 데이터베이스 및 collection 이름을 포함하는 문자열(예:"testdb.testcollection" Namespace 을 인스턴스로 구문 분석할 수 있습니다.

  • ConnectionInfo 구조체의 server_idi64 유형으로 포함합니다.

  • Cursor 에서 참고하는 값에 대한 대부분의 유형 제약 조건을 제거합니다.

  • 동등 쿼리와 함께 Queryable Encryption 기능을 사용하려면 드라이버 의존성의 libmongocrypt 버전을 업데이트합니다.

이 릴리스에 대해 자세히 알아보려면 Github에서 v2.6.0 릴리스 하이라이트를 참조하세요.

돌아가기

빠른 참조

이 페이지의 내용