Saiba mais sobre os novos recursos, melhorias e correções introduzidos nas seguintes versões do MongoDB Rust Driver:
Novidades no 3.4
A versão do driver Rust v3.4 inclui as seguintes funcionalidades, melhorias e correções:
Introduces type-safe MongoDB Search query construction through the
atlas_searchmodule. This feature provides compile-time validation, IDE support, and a fluent builder pattern for constructing MongoDB Search queries. To learn more about type-safe MongoDB Search queries, see the Type-Safe Query Construction section of the Run a MongoDB Search Query guide.Adds support for tracing database commands and driver operations for OpenTelemetry.
Adds support for text indexes for automatic and explicit queryable encryption. To learn more about Queryable Encryption, see the Queryable Encryption section of the MongoDB Server manual.
Para saber mais sobre esta versão, consulte as notas de versão v3.4 no Github.
Novidades no 3.3
A versão do driver Rust v3.3 inclui as seguintes funcionalidades, melhorias e correções:
Importante: esta versão elimina o suporte para a versão 4.0 do MongoDB Server e aumenta a versão mínima suportada para 4.2. Recomendamos fazer alterações em seu aplicação para acomodar alterações significativas. Consulte a seção Notas de versão no manual do servidor para saber mais sobre a atualização.
Apresenta suporte para a versão 3.0 da crate BSON . Por padrão, o driver usa a versão 2.15 para compatibilidade com versões anteriores. Para usar a versão 3.0, adicione o recurso
bson-3à listafeaturesda crate do driver noCargo.tomldo seu projeto. BSON 3.0 atualiza várias APIs de maneiras incompatíveis com versões anteriores. As seguintes alterações podem exigir atualizações em seu aplicação:Inclui um tipo unificado de
bson::error::Errorque consolida o tratamento de erros em toda a crate com campos consistentes e informações de erro granulares.Adiciona tipos
&CStreCStringpara chaves BSON e expressões regulares para evitar problemas de bytes nulos que causavam pânico anteriormente. O exemplo seguinte mostra como atualizar seu código utilizando os tipos&CStreCString: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"); Fornece todas as conversões entre tipos brutos e seus tipos de referência por meio de características de biblioteca padrão.
Torna o
serdeum recurso opcional que está desativado por padrão. As funções de serialização e desserialização agora têm prefixosserialize_tooudeserialize_frompara maior clareza.Simplifica a decodificação com perdas UTF-8 com o tipo wrapper
Utf8Lossye novos métodos de conversão.Atualiza as funções assistente
serdepara trabalhar com a anotaçãoserde_asda crateserde_withpara conversões de tipo mais flexíveis. Para mais informações, consulte Modelagem de dados e Serialização.Para obter instruções detalhadas sobre a migração do BSON 2.x para o BSON 3.0, consulte o guia Migração do 2.x para 3.0 no Github.
Para saber mais sobre esta versão, consulte as notas de versão v3.3 no Github.
Novidades no 3.2
A versão do driver Rust v3.2 inclui as seguintes funcionalidades, melhorias e correções:
Importante: a próxima versão menor eliminará o suporte para a versão do MongoDB Server 4.0 e aumentará a versão mínima suportada 4.2 para. Recomendamos fazer alterações em seu aplicação para acomodar alterações significativas. Consulte a seção Notas de versão no manual do servidor para saber mais sobre a atualização.
Aumenta a versão mínima suportada do Rust 1.71.1 para. Para saber mais sobre compatibilidade de drivers, consulte a página de compatibilidade.
Marca o recurso de criptografia em uso como estável com as mesmas garantias de compatibilidade com versões anteriores do driver. O sinalizador de feição é denominado
in-use-encryption. Esta é uma alteração de política e a API não é alterada em relação à versão anterior.Permite nomes de host SRV com menos de três partes.
Permite fornecer uma opção de classificação ao executar operações de atualização.
Adiciona suporte de autenticação OIDC para ambientes Kubernetes.
Para usar o OIDC para autenticar a partir de um ambiente Kubernetes, defina a opção de conexão
authMechanismPropertiescomoENVIRONMENT:k8sem sua string de conexão. Você pode usar esse recurso ao se conectar a um ambiente em execução no Elastic Kubernetes Service da Amazon, no Google Kubernetes Engine ou no Azure Kubernetes Service.
Para saber mais sobre esta versão, consulte as notas de versão v3.2 no Github.
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
typecampo aoSearchIndexModeltipo para permitir a criação programática de índices do MongoDB Search e do MongoDB Vector Search . Para saber mais, consulte o guia de índices de pesquisa e Vector Search do MongoDB .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ânciaCollectionem 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 tipoEventHandler, 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 comandono-default-features. Os recursosrustlsedns-resolutionagora são opcionais.Remove o suporte para os recursos do driver
bson-*. Você pode selecionar essas funcionalidades incluindobsoncomo 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
ReadConcerneWriteConcern.Adiciona restrições
Send + Syncao tipoCollection<T>.Remove o campo
ClientOptions::compressorse nenhum recurso do compressor estiver habilitado.Altera o tipo de campos
ReadPreferenceOptions. Esses campos agora têm um tipoOption<ReadPreferenceOptions>.Remove a opção
CollectionOptions::human_readable_serialization. Em vez disso, use o tipo wrapperbson::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_bsonparacommentpara as estruturasAggregateOptions,FindOptionseFindOneOptions.
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 MongoDB MongoDB Search. Para saber mais sobre esses métodos, consulte o guia sobre índices de pesquisa e Vector Search do MongoDB .
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à estruturaCollectionOptions. 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_serializationcomotrue, 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 tipoCursor. 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 estruturaClientOptionspara 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çãomin_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 oClientfor 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 estruturaNamespace. 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ânciaNamespace.Inclui o
server_idem uma estruturaConnectionInfocomo um tipoi64.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.