E foi lançada a Rust 1.78 com melhorias, correções e novos recursos. Confira as novidades e veja como instalar no Linux.
Rust é uma linguagem de programação multiprocessal compilada, de propósito geral, que está sendo desenvolvida pela Mozilla e apoiada pela LLVM.
Rust se concentra na segurança da memória e fornece os meios para alcançar alto paralelismo de trabalho, evitando o uso de coletor de lixo e tempo de execução (o tempo de execução é reduzido à inicialização básica e à manutenção padrão da biblioteca).
Esta linguagem foi concebida para ser “uma linguagem segura, concorrente e prática” e, acima de tudo, para substituir as linguagens C e C++.
A sintaxe de Rust é semelhante à de C e C++, com blocos de código delimitados por chaves e estruturas de controle de fluxo, como if, else, do, while e for.
Rust é uma linguagem de programação de código aberto que suporta programação funcional pura, processual, imperativa e orientada a objetos.
Essa linguagem de programação funciona de maneira extremamente rápida, evita os segfaults (falhas de segmentação) e garante a segurança dos subprocessos (threads).
Ela suporta abstrações de custo zero, semântica de movimento, segurança de memória garantida, encadeamentos genéricos baseados em recursos e não baseados em dados e correspondência de padrões, e também suporta inferência de tipos, tempo mínimo de execução, bem como links C eficientes.
Rust pode ser executado em um grande número de plataformas e está sendo usado na produção de empresas/organizações, como Dropbox, CoreOS, NGP e muitos mais.
O objetivo do Rust é ser uma boa linguagem para a criação de grandes programas no lado do cliente e do servidor que são executados na Internet.
Isso levou a um conjunto de recursos com ênfase em segurança, controle de distribuição de memória e simultaneidade.
Agora, há poucos dias foi anunciado o lançamento da nova versão da popular linguagem de programação Rust 1.78.
Novidades do Rust 1.78
Sim. A nova versão do Rust 1.78 já foi lançada e conta com novas funcionalidades implementadas, além de estabilização de algumas APIs, melhorias no Cargo e muito mais.
Nesta nova versão que é apresentada, o Rust 1.78 aumentou seu requisito mínimo para Windows 10, além do compilador ter sido alterado para utilizar o LLVM 18. Quando o LLVM 18 é utilizado para arquiteturas x86-32 e x86-64, a ABI foi alterada associado aos tipos u128 e i128.
Por parte das mudanças, uma das características que se destaca é que Rust agora suporta um namespace de atributo “#[diagnostic]”, que fornece um meio de influenciar as mensagens de erro produzidas pelo compilador.
Eles são tratados como dicas que o compilador não precisa usar, nem é um erro fornecer um diagnóstico que o compilador não reconhece.
Isso permite que o código-fonte forneça diagnósticos mesmo quando não são suportados por todos os compiladores, sejam versões diferentes ou implementações completamente diferentes.
Além disso, um cache global foi estabilizado no Cargo que armazena informações sobre o uso de dados mais recente. Este cache está localizado em $CARGO_HOME/.global-cache e utiliza SQLite para sua implementação.
Ele é atualizado automaticamente para refletir as alterações mais recentes no índice, arquivo crate, diretório de código, clone git e checkout git, melhorando a eficiência e a velocidade das operações de gerenciamento de dependências em projetos de desenvolvimento.
Outro novo recurso do Rust 1.78 é que a biblioteca padrão do Rust possui várias asserções para as pré-condições de funções “inseguras” que agora podem ser adiadas até a geração do código.
Isso permite que essas verificações sejam executadas, que historicamente só foram habilitadas em compilações “#[cfg(debug_assertions)]” para evitar impacto no desempenho na versão de lançamento.
Com essa mudança, os usuários agora podem detectar comportamento indefinido em seu código, embora os detalhes sobre o quanto é verificado geralmente não sejam estáveis.
Para habilitar verificações, agora é suficiente habilitar asserções de depuração para testes ou compilações de depuração do código.
Além disso, o comportamento das funções da biblioteca padrão que afetam o alinhamento de ponteiros e setores agora é previsível em tempo de execução e depende dos dados de entrada.
A função pointer::align_offset, que calcula o deslocamento para alinhar o ponteiro, agora retorna usize::MAX somente se a operação falhar.
As funções slice::align_to e slice::align_to_mut, que transformam fatias em uma representação com uma fatia intermediária alinhada e as fatias iniciais e finais originais, agora sempre retornam a maior fatia intermediária.
Por outro lado, é mencionado que as seguintes APIs foram movidas para a categoria “estável”: impl Read para &Stdin, impl From para io::Error e a implementação impl que permite o uso de? Dimensionado.
Das outras mudanças que se destacam no Rust 1.78, temos:
- O segundo nível de suporte para a plataforma de destino Add wasm32-wasip1 foi implementado. O segundo nível de apoio envolve uma garantia de montagem.
- A plataforma wasm32-wasi-preview1-threads foi renomeada para wasm32-wasip1-threads.
- No gerenciador de pacotes Cargo, a versão 4 dos arquivos de bloqueio (lockfile v4) foi estabilizada. Cargo agora usa esta versão como padrão para garantir consistência e gerenciamento eficiente de dependências entre projetos.
Para saber mais sobre essa versão do Rust, acesse a nota de lançamento.
Como instalar ou atualizar o Rust 1.78
Para instalar a versão mais recente do Rust nas principais distribuições Linux, use esse tutorial:
Como instalar a linguagem de programação Rust no Linux