Saiba mais sobre os novos recursos, melhorias e correções introduzidos nas seguintes versões do MongoDB Rust Driver:
Novidades no 3.1
A versão do driver Rust v3.1 inclui as seguintes funcionalidades, melhorias e correções:
- Adiciona suporte para mais de um fornecedor de KMS (KMS) do mesmo tipo. Para saber mais sobre os provedores de KMS, consulte Queryable Encryption no manual do MongoDB Server . 
- Adiciona suporte para v2 do protocolo de faixa Queryable Encryption . Os índices de faixa para Queryable Encryption agora são GA. 
- Adiciona o campo - typeao tipo- SearchIndexModelpara permitir a criação programática de índices do Atlas Search e Atlas Vector Search . Para saber mais, consulte o guia Atlas Search e Vector Search Indexes.
- Implementa o algoritmo FlexibleEyballs para gerenciar conexões TCP. Para saber mais sobre esse algoritmo, consulte a documentação do Rust para a crate happy_eyeballs. 
- O driver publica um evento - TopologyDescriptionChangedEventquando uma topologia é fechada.
Para saber mais sobre esta versão, consulte as notas de versão v3.1 no Github.
Novidades em 3.0.1
A versão do driver Rust v3.0.1 inclui as seguintes funcionalidades, melhorias e correções:
- Corrige um problema no qual as aggregations não compilavam quando executadas dentro de sessões explícitas e também implementou tipos personalizados. 
- Corrige um problema no qual o método - Collection::watch()não usava o parâmetro de tipo da instância- Collectionem que foi executado.
Para saber mais sobre esta versão, consulte as Notas da versão v3.0.1 no GitHub.
Novidades no 3.0
A versão do driver Rust v3.0 inclui as seguintes funcionalidades, melhorias e correções:
- Implementa uma API fluente, que introduz as seguintes alterações de sintaxe para passar opções e iniciar sessões: - Para definir opções de método assíncrono, encadeie os métodos do construtor de opções diretamente para a chamada do método, em vez de passar um parâmetro de estrutura de opções. 
- Para definir opções de método síncronas, encadeie os métodos construtor de opções à chamada do método e, em seguida, chame o método - run().
- Se você precisar construir uma estrutura de opções separada, encadeie o método - with_options()à chamada do método e passe sua estrutura de opções como um parâmetro.
- Para iniciar uma sessão, encadeie o método - session()à chamada do método em vez de usar um método separado que tenha um sufixo- _with_session.
 
- Adiciona suporte para operações de escrita em massa. Para saber mais sobre essas operações, consulte o guia de operações em massa . 
- Introduz o tipo - EventHandlerpara reduzir a quantidade de código boilerplate necessária para o monitoramento de evento . Para exemplos que usam o tipo- EventHandler, consulte os guias na seção Monitoramento.
- Remove o suporte para o tempo de execução assíncrono - async-std. Para saber mais sobre essa alteração, consulte a seção Configurar o tempo de execução assíncrono do guia de APIs assíncronas e síncronas.
- Requer o uso de um recurso - compatse um aplicação de driver Rust for compilado com o sinalizador de linha de comando- no-default-features. Os recursos- rustlse- dns-resolutionagora são opcionais.
- Remove o suporte para os recursos do driver - bson-*. Você pode selecionar essas funcionalidades incluindo- bsoncomo uma dependência direta em seu aplicação.
- Remove o suporte para constantes de read e preocupação de gravação . Em vez disso, utilize métodos de assistente para definir valores - ReadConcerne- WriteConcern.
- Adiciona restrições - Send + Syncao tipo- Collection<T>.
- Remove o campo - ClientOptions::compressorse nenhum recurso do compressor estiver habilitado.
- Altera o tipo de campos - ReadPreferenceOptions. Esses campos agora têm um tipo- Option<ReadPreferenceOptions>.
- Remove a opção - CollectionOptions::human_readable_serialization. Em vez disso, use o tipo wrapper- bson::HumanReadablepara serializar os dados do usuário em um formato legível por humanos.
- Adiciona suporte para conversão de valor por meio do traço - Intopara todos os construtores de estrutura de opção.
- Renomeia o campo - comment_bsonpara- commentpara as estruturas- AggregateOptions,- FindOptionse- FindOneOptions.
Para saber mais sobre esta versão, consulte o Guia de Migração do v3.0 no Github.
Novidades no 2.8
A versão v2.8 do driver Rust inclui as seguintes funcionalidades, melhorias e correções:
- Adiciona métodos de gerenciamento de índice do Atlas Search . Para saber mais sobre esses métodos, consulte o guia Atlas Search e Vector Search Indexes. 
- Melhora a conectividade da rede e a confiabilidade da operação implementando os seguintes comportamentos: - Executa novas tentativas em uma variedade maior de tipos de erro encontrados pelo driver. 
- mongosnovas tentativas para instâncias com problemas de conectividade de rede.
 
Para saber mais sobre essa versão, consulte a Destaques do lançamento v2.8.0 no GitHub.
Novidades no 2.7
A versão v2.7 do driver Rust inclui as seguintes funcionalidades, melhorias e correções:
- Adiciona a opção - human_readable_serializationà estrutura- CollectionOptions. Esta opção instrui o driver a serializar os valores passados para os métodos CRUD como um formato legível pelo ser humano. O valor padrão desta opção é- false.- Aviso- Se você definir o valor de - human_readable_serializationcomo- true, suas operações de inserção poderão ser executadas mais lentamente.
- Adiciona o método - run_cursor_command()para executar um comando do banco de dados e recuperar a resposta como um tipo- Cursor. Para saber mais, consulte o guia Executar um comando .
- Adiciona um registro de eventos SDAM ao utilizar a sinalização de recurso - tracing-unstable.
- Adiciona as seguintes configurações para - Cliente gerenciamento de conexões:- max_connecting: uma opção que você pode definir em uma estrutura- ClientOptionspara especificar quantas conexões você pode estabelecer em paralelo. Para saber mais sobre essa opção, consulte pool de conexões no guia Considerações de desempenho.
- Client::warm_connection_pool(): um método que você pode usar para criar novas conexões no pool de conexões para fornecer um desempenho mais previsível. Ao usar este método, o driver tenta criar conexões até o número especificado na configuração- min_pool_size.
- Client::shutdown(): um método que você pode usar para interromper tarefas em segundo plano e aguardar a saída dos manipuladores. Este método pode ser útil se você usar manipuladores de eventos para fazer referência a recursos externos, pois esses manipuladores podem ser usados em tarefas mesmo depois que o- Clientfor fechado.
 
Para saber mais sobre essa versão, consulte a Destaques do lançamento v2.7.0 no GitHub.
Novidades no 2.6
A versão v2.6 do driver Rust inclui as seguintes funcionalidades, melhorias e correções:
- Oferece suporte a roles do Amazon Web Services Identity e Access Management (IAM) para contas de serviço, como contas do Elastic Kubernetes Service (EKS). 
- Oferece suporte a contas de serviço anexadas ao GCP ao usar o Cloud Key Management System (KMS). 
- Suporta a busca de credenciais CSFLE sob demanda do Azure KMS. 
- Implementa a propriedade - FromStrpara a estrutura- Namespace. Essa alteração permite analisar uma string que inclui um nome de reconhecimento de data center e de collection, como- "testdb.testcollection", em uma instância- Namespace.
- Inclui o - server_idem uma estrutura- ConnectionInfocomo um tipo- i64.
- Remove a maioria das restrições de tipo em valores referenciados por um - Cursor.
- Atualiza a versão - libmongocryptno driver para habilitar o recurso Queryable Encryption em consultas que usam comparações de igualdade.
Para saber mais sobre essa versão, consulte a Destaques do lançamento v2.6.0 no GitHub.