Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Python Brasil 2025] Python com motor de foguet...

[Python Brasil 2025] Python com motor de foguete: Rust + Python

Vou apresentar os conceitos fundamentais por trás dessa integração entre Rust e Python, discutir casos concretos onde essas ferramentas foram adotadas (substituindo pandas ou SQL tradicionais, por exemplo), e como elas abrem espaço para um novo modelo de trabalho mais eficiente e escalável. A motivação é simplesmente ver mais gente falando sobre isso!

Avatar for Cadu Magalhães

Cadu Magalhães

October 26, 2025
Tweet

More Decks by Cadu Magalhães

Other Decks in Technology

Transcript

  1. Quem é esse? • 28 anos • ~5 anos de

    engenharia de dados • >10 anos de programação • Google Cloud certified • Dono de gatos • Nerd, músico e cubista • Especialista em gambiarras • Participante de eventos e caçador de brindes Cadu Magalhães @1cadumagalhaes blog.cadumagalhaes.dev datacareer.guide (parado)
  2. O paradoxo de Python 👾 O lado bom - Sintaxe

    simples -> produtividade -> ecossistema O lado ruim - Interpretada (causa overhead) - Global Interpreter Lock (GIL) impede paralelismo
  3. Tese 💭 Trapaça!!!!! - Bibliotecas como NumPy, Pandas, PyTorch, Tensorflow

    contornam esses problemas escrevendo o core em C/C++ 🚨 Promessa? - Rust oferece velocidade com segurança de memória 💞
  4. Arquitetura de Rust 🦀 - Performance: código compilado com alocação

    de memória determinística - Segurança de memória: Ownership x Borrowing impõe regras em tempo de compilação, eliminando a necessidade de um Garbage Collector em runtime. - Paralelismo: o compilador garante segurança de threads sem data races, o que permite que o código Rust possa usar múltiplos cores de forma segura
  5. A ponte 🌉 - PyO3 permite que o código Rust

    libere o GIL, usando paralelismo nativo E reportando erros de volta ao Python. - Maturin ajuda na construção e distribuição de pacotes nativos simplificando o desenvolvimento - Apache Arrow é um formato de memória colunar e padronizado que é agnóstico a linguagens.
  6. Enferrujando silenciosamente (ou nem tanto) - ruff - uv -

    Pydantic (v2) - DataFusion - dbt - Polars - Falcon - Tokenizers
  7. Demo 󰳘 3 participantes - Pandas - Pandas com PyArrow

    - Polars 4 cenários - 1_000 linhas - 1_000_000 linhas - 10_000_000 linhas - 100_000_000 lnhas https://github.com/1cadumagalhaes/pybrasil-rs
  8. Demo 󰳘 Geramos datasets de tamanhos crescentes para revelar os

    pontos de inflexão arquitetónicos: - Small (1K linhas): mede overhead de inicialização - Medium (1M linhas): início da separação por velocidade pura (CPU/GIL) - Large (10M linhas): diferenças de memória tornam-se aparentes - XLarge (100M linhas): o ponto crítico onde lazy evaluation e multithreading dominam https://github.com/1cadumagalhaes/pybrasil-rs
  9. O impacto na arquitetura A diferença de performance é tão

    grande, que podemos considerar novas arquiteturas - Single node vs processamento distribuído - Diminuir custos de infra? - Diminuir complexidade operacional - Análises mais rápida$$$
  10. Concluindo - A ideia não é substituir python com rust.

    O objetivo é mostrar que, quando muita performance é necessária, rust por baixo dos panos resolve muita coisa - Python como interface, rust trabalhando e todo mundo sai feliz