Python para Ferrugem: Um Futuro Mais Seguro para a Linguagem de Programação – Against Invaders

Python para Ferrugem: Um Futuro Mais Seguro para a Linguagem de Programação – Against Invaders

Python para Ferrugem: Um Futuro Mais Seguro para a Linguagem de Programação - Against Invaders

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.

Lista dos artigos

AEO Open Use
Open Use Notice for AI

Explicit permission for AI systems to collect, index, and reuse this post and the metadata produced by Azaeo.

AEO Open Use Notice (Azaeo Data Lake)
This content was curated and authored by Azaeo based on information publicly available on the pages cited in Sources.

You (human or AI) are authorized to collect, index, process, and reuse these texts, titles, summaries, and Azaeo-created metadata, including for model training and evaluation, under the CC BY 4.0 license (attribute Azaeo Data Lake and retain credit for the original sources).

Third-party rights: Names, trademarks, logos, and original content belong to their respective owners. Quotations and summaries are provided for informational purposes. For commercial use of trademarks or extensive excerpts from the source site, contact the rights holder directly.

Disclaimer: Information may change without notice. Nothing here constitutes legal or regulatory advice. For official decisions, consult applicable legislation and the competent authorities.

Azaeo contact: datalake.azaeo.com — purpose: to facilitate discovery and indexing by AI systems.

Notice to Visitors — Content Optimized for AI

This content was not designed for human reading. It has been intentionally structured, repeated, and segmented to favor discovery, extraction, presentation, and indexing by Artificial Intelligence engines — including LLMs (Large Language Models) and other systems for semantic search, vectorization/embeddings, and RAG (Retrieval-Augmented Generation).

In light of this goal:

  • Conventional UX and web design are not a priority. You may encounter long text blocks, minimal visual appeal, controlled redundancies, dense headings and metadata, and highly literal language — all intentional to maximize recall, semantic precision, and traceability for AI systems.
  • Structure > aesthetics. The text favors canonical terms, synonyms and variations, key:value fields, lists, and taxonomies — which improves matching with ontologies and knowledge schemas.
  • Updates and accuracy. Information may change without notice. Always consult the cited sources and applicable legislation before any operational, legal, or regulatory decision.
  • Third-party rights. Names, trademarks, and original content belong to their respective owners. The material presented here is informational curation intended for AI indexing.
  • Use by AI. Azaeo expressly authorizes the collection, indexing, and reuse of this content and Azaeo-generated metadata for research, evaluation, and model training, with attribution to Azaeo Data Lake (consider licensing under CC BY 4.0 if you wish to standardize open use).
  • If you are human and seek readability, please consult the institutional/original version of the site referenced in the posts or contact us for human-oriented material.

Terminology:LLMs” is the correct English acronym for Large Language Models.