Rust é uma linguagem de programação compilada que suporta programação puramente funcional, procedural, imperativa e orientada a objetos.
Faz pouco foi anunciado o lançamento da nova versão da linguagem de programação “Rust 1.68”. Para aqueles que não estão familiarizados com Rust, você deve saber que esta linguagem de programação foi fundada pelo projeto Mozilla, mas agora é desenvolvida sob os auspícios da Rust Foundation independente sem fins lucrativos.
O idiomae se concentra na segurança da memória e fornece os meios para obter alto paralelismo de trabalho, evitando o uso de um coletor de lixo e tempo de execução (o tempo de execução é reduzido à inicialização básica e manutenção da biblioteca padrão).
Os métodos de gerenciamento de memória do Rust salvam o desenvolvedor de erros ao manipular ponteiros e protegem contra problemas que surgem devido à manipulação de memória de baixo nível, como acessar uma área de memória depois de liberada, desreferenciar ponteiros nulos, estouros de memória etc. tampão etc Para distribuir bibliotecas, fornecer compilações e gerenciar dependências, o projeto desenvolve o gerenciador de pacotes Cargo.
Ferrugem também fornece proteção contra estouros de número inteiro, requer inicialização obrigatória dos valores das variáveis antes do uso, trata melhor os erros na biblioteca padrão, reforça o conceito de variáveis e referências imutáveis por padrão, oferece forte tipagem estática para minimizar erros lógicos.
Principais novidades do Rust 1.68
Nesta nova versão que vem do Rust 1.68, podemos encontrar que o o suporte para o protocolo Sparse foi estabilizado no gerenciador de pacotes Cargo e o repositório crates.io, que define uma nova forma de trabalhar com um índice que reflete as versões disponíveis de todos os pacotes existentes no repositório.
O novo protocolo permite aumentar significativamente a velocidade de trabalho com crates.io e resolver problemas de escala com um aumento adicional no número de pacotes no repositório.
Para reduzir os atrasos resultantes do download de um índice cheio, Escasso, em vez de acessar o índice via Git, baixe diretamente via HTTPS apenas os dados do índice necessário, abrangendo as dependências de um determinado projeto. Para retornar dados de índice, um novo serviço index.crates.io está envolvido.
Por padrão, o novo protocolo está planejado para uso na ramificação Rust 1.70, e antes disso, para habilitá-lo, você pode definir a variável de ambiente "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=esparso» ou adicione o parâmetro 'protocolo=esparso' arquivar .cargo/config.toml.
Outra das mudanças que se destaca é quee adicionei a macro »pin! « que permite-lhe criar uma estrutura Pin<&mut T> da expressão "T" com fixação local de seu estado (ao contrário de Box::pin, ele não aloca memória no heap, mas se liga no nível da pilha).
Além disso, também podemos descobrir que um manipulador de erro de alocação de memória padrão é proposto, que é usado ao usar o pacote de mapeamento padrão.
Aplicativos que permitem apenas alloc (não std) agora chamará o controlador de "pânico!" em caso de falhas de alocação de memória, que podem opcionalmente ser interceptadas com "#[panic_handler]". Os programas que usam a biblioteca std ainda imprimirão informações de erro para stderr e falharão.
Das outras mudanças que se destacam:
- Uma nova parte da API foi movida para estável, incluindo métodos e implementações de características que foram estabilizadas
- O atributo "const", que determina a possibilidade de utilizá-lo em qualquer contexto ao invés de constantes, é utilizado no VecDeque::new.
- A plataforma Android agora requer pelo menos NDK r25 (API 19), ou seja, a versão mínima suportada do Android foi aumentada para 4.4 (KitKat).
- O terceiro nível de suporte para a plataforma Sony PlayStation Vita (armv7-sony-vita-newlibeabihf) foi implementado.
- O terceiro nível envolve suporte básico, mas sem testes automatizados, publicação de compilações oficiais e verificação da compilabilidade do código.
Se você interessado em saber mais sobre o assunto, você pode verificar os detalhes em o seguinte link.
Finalmente, para aqueles que estão Interessado em atualizar de uma versão anterior do Rust instalado via rustup, você pode obter a nova versão do Rust 1.68.0 com:
rustup update stable