
Redazione RHC:19 de novembro de 2025 21:26
Dois CPython Desenvolvedores propuseram adicionando a linguagem de programação Rust à base de código Python . Emma Smith e um colega publicaram um Preliminar Proposta de Aprimoramento em Python (Pré-PEP) justificando essa etapa. Atualmente, Rust é destinado apenas à escrita de módulos de extensão opcionais, mas pode se tornar um dependência necessária no futuro.
O principal motivo para adotar o Rust é para melhorar a segurança da memória . A linguagem impede Classes inteiras de erros em tempo de compilação: acessos fora de limites de arrays, acessos à memória liberada e conflitos de dados em código multithread.
Isso é especialmente relevante para Python, que usa threads livres, onde a segurança das threads é fundamental. O RustBelt O projeto chegou até a demonstrar formalmente a correção das garantias de segurança da Rust para códigos livres de construções inseguras.
CPython encontra regularmente Bugs devido ao gerenciamento inadequado da memória. Os autores da proposta acreditam que A ferrugem reduz radicalmente esses problemas. Mesmo que algum código continue inseguro devido a interações com a API C, a lógica central dos módulos será escrita em Rust, uma linguagem segura.
Rust já é ativamente usado por grandes projetos em C e C++. O kernel Linux , Andróide , Firefox e muitos outros sistemas estão adotando a linguagem para melhorar a confiabilidade.
O Google já fez isso Resultados positivos reportados de implementar o Rust no Android. Interessantemente 25% a 33% das novas extensões em Python são escritos em Ferrugem; integrando a linguagem em CPython Pode impulsionar ainda mais essa tendência.
Além da segurança, a Rust oferece Estruturas de dados de alto desempenho De A biblioteca padrão . Vetores, tabelas hash e mutexes são todos implementados com Zero overhead e são bem documentados.
O sistema de macros do Rust é superior aos macros C : macros declarativas são mais limpas e não capturam variáveis acidentalmente, enquanto macros procedurais permitem transformações poderosas de código . O PyO3 a biblioteca faz uso extensivo de macros procedurais para simplificar usando a API Python.
Os desenvolvedores já fizeram isso criou um protótipo _base64 que demonstra as melhorias de desempenho alcançadas usando o Rust.
A integração exigirá um novo cpython-sys caixa com definições de API do C FFI. As ligações são geradas usando bindgen , a ferramenta oficial do Rust também usada em projetos Linux e Android. Carga pode fornecer dependências logo de fábrica, então não há necessidade de baixar pacotes durante a compilação.
Suportes contra ferrugem todas as plataformas especificadas no PEP 11 e posterior . Todo Plataformas Python de Nível 1 correspondem às plataformas Rust de Nível 1 ou Nível 2, com um conjunto completo de ferramentas de desenvolvimento. A compilação cruzada é fácil de configurar: basta definir o alvo desejado e especificar o linker.
Os autores abandonaram a ideia de usar o existente PyO3 dentro do CPython. Isso teria criado uma camada adicional de abstração e retardado o desenvolvimento: cada nova API teria sido adicionada primeiro ao PyO3 e depois atualizada no CPython. Com o bindgen, novas APIs ficam disponíveis automaticamente.
Existe um problema de dependência: o compilador Rust usa Python para bootstrap . Mas existem soluções. É possível compilar uma versão antiga do Python, depois Rust, e então o novo CPython . Os scripts bootstrap da Rust são justos compatível com Python 2 , então o problema é solucionável. Alternativas são usar o PyPy ou fazer o Rust se desacoplar do Python durante o processo de compilação.
Recursos de treinamento estão disponíveis para desenvolvedores atuais do CPython. O Livro da Ferrugem oferece uma introdução abrangente ao idioma, além de Rust para Programadores C++ e Material oficial de treinamentoials .
Estão em andamento planos para criar uma equipe de especialistas em Rust e adicionar um tutorial ao devguide . Trabalhar com argumentos de função pode exigir adaptação Clínica de Argumentação ou criar uma macro procedural no Rust.
Redazione
A equipe editorial do Red Hot Cyber é composta por um grupo de indivíduos e fontes anônimas que colaboram ativamente para fornecer informações e notícias iniciais sobre cibersegurança e computação em geral.