<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Desbravando Rust</title>
  <subtitle>Guia técnico para desenvolvedores Python que querem dominar Rust: ownership, tratamento de erros, concorrência e projetos práticos.</subtitle>
  <link href="https://desbravandorust.com.br/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://desbravandorust.com.br/blog/" rel="alternate" type="text/html"/>
  <updated>2026-08-12T16:25:02+00:00</updated>
  <id>https://desbravandorust.com.br/feed.xml</id>
  <author><name>José Luis da Cruz Junior</name></author><entry>
    <title>Python sem GIL chegou. Rust ainda importa?</title>
    <link href="https://desbravandorust.com.br/posts/0021-python-sem-gil-rust-rayon/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0021-python-sem-gil-rust-rayon/</id>
    <updated>2026-08-03T12:00:00-03:00</updated>
    <published>2026-08-03T12:00:00-03:00</published>
    <summary>Por mais de trinta anos, toda conversa sobre performance em Python esbarrou na mesma sigla: GIL. O Global Interpreter Lock — o cadeado global que impede duas threads de executarem bytecode Python a...</summary>
  </entry><entry>
    <title>Uma regra, dois mundos: a mesma lógica no front-end e no Python via Rust + WASM</title>
    <link href="https://desbravandorust.com.br/posts/0020-uma-regra-dois-mundos-wasm-pyo3/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0020-uma-regra-dois-mundos-wasm-pyo3/</id>
    <updated>2026-07-27T12:00:00-03:00</updated>
    <published>2026-07-27T12:00:00-03:00</published>
    <summary>Escreva uma regra de negócio uma única vez em Rust e rode-a idêntica no navegador do usuário (via WASM) e no seu back-end Python (via PyO3): a mesma validação de CPF, o mesmo cálculo de desconto, s...</summary>
  </entry><entry>
    <title>1 milhão de conexões WebSocket: o teto do Python e o chão do Rust</title>
    <link href="https://desbravandorust.com.br/posts/0019-um-milhao-websockets-python-rust/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0019-um-milhao-websockets-python-rust/</id>
    <updated>2026-07-20T12:00:00-03:00</updated>
    <published>2026-07-20T12:00:00-03:00</published>
    <summary>No primeiro post deste blog eu mostrei o Axum superando o FastAPI numa rota HTTP. A reação mais comum foi: “ok, mas a diferença em request/response não muda minha vida”. Justo. Então hoje eu vou pa...</summary>
  </entry><entry>
    <title>Eu apaguei meu Celery: uma fila de tarefas em Rust falando com o seu Django</title>
    <link href="https://desbravandorust.com.br/posts/0018-apaguei-meu-celery-worker-rust-django/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0018-apaguei-meu-celery-worker-rust-django/</id>
    <updated>2026-07-13T12:00:00-03:00</updated>
    <published>2026-07-13T12:00:00-03:00</published>
    <summary>Toda aplicação Django de porte médio para cima chega no mesmo lugar: um enxame de workers Celery consumindo Redis, comendo RAM e custando container. A gente aceita isso como lei da natureza. Mas e ...</summary>
  </entry><entry>
    <title>Seu ORM está mentindo para você (Parte II): o N+1 que o SQLx te obriga a enxergar</title>
    <link href="https://desbravandorust.com.br/posts/0017-orm-mentindo-n1-sqlx/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0017-orm-mentindo-n1-sqlx/</id>
    <updated>2026-06-29T12:00:00-03:00</updated>
    <published>2026-06-29T12:00:00-03:00</published>
    <summary>No post sobre Django ORM vs SQLx eu defendi uma ideia incômoda: a “mágica” do ORM tem um preço, e quase sempre quem paga é o seu banco de dados em produção. Recebi muita mensagem concordando — e al...</summary>
  </entry><entry>
    <title>CNPJ alfanumérico e CPF na prática: Rust acelerando Python em regras fiscais críticas</title>
    <link href="https://desbravandorust.com.br/posts/0016-cnpj-alfanumerico-rust-python-performance/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0016-cnpj-alfanumerico-rust-python-performance/</id>
    <updated>2026-06-19T12:00:00-03:00</updated>
    <published>2026-06-19T12:00:00-03:00</published>
    <summary>A partir de julho de 2026, o ecossistema brasileiro passa a conviver com o CNPJ alfanumérico (IN RFB 2.119/2022). Para quem opera sistemas de cadastro, antifraude, onboarding, faturamento e complia...</summary>
  </entry><entry>
    <title>Desvendando Pattern Matching em Rust: Um Guia Prático para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0015-pattern-matching-rust-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0015-pattern-matching-rust-pythonistas/</id>
    <updated>2026-05-16T12:00:00-03:00</updated>
    <published>2026-05-16T12:00:00-03:00</published>
    <summary>Se você vem do Python, está acostumado com estruturas condicionais como if-elif-else para controlar o fluxo do programa. Mas e se eu te disser que Rust possui uma ferramenta muito mais poderosa cha...</summary>
  </entry><entry>
    <title>Macros em Rust: Automatizando Código Além do que Python Permite</title>
    <link href="https://desbravandorust.com.br/posts/0014-macros-rust-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0014-macros-rust-pythonistas/</id>
    <updated>2026-05-12T12:00:00-03:00</updated>
    <published>2026-05-12T12:00:00-03:00</published>
    <summary>Metaprogramação é a arte de escrever código que gera ou manipula outro código. Se você vem do Python, provavelmente já usou decoradores, metaclasses ou funções de geração de código para automatizar...</summary>
  </entry><entry>
    <title>Smart Pointers em Rust: Gerenciamento Avançado de Memória para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0013-smart-pointers-rust-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0013-smart-pointers-rust-pythonistas/</id>
    <updated>2026-04-18T12:00:00-03:00</updated>
    <published>2026-04-18T12:00:00-03:00</published>
    <summary>Se você vem do Python, onde o gerenciamento de memória é automático através do coletor de lixo (GC), pode estranhar inicialmente como Rust lida com alocação e liberação de memória. Porém, os Smart ...</summary>
  </entry><entry>
    <title>Lifetimes em Rust: Desvendando o Tempo de Vida das Variáveis para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0012-lifetimes-rust-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0012-lifetimes-rust-pythonistas/</id>
    <updated>2026-04-16T12:00:00-03:00</updated>
    <published>2026-04-16T12:00:00-03:00</published>
    <summary>Em Python, você nunca precisa se preocupar explicitamente com quanto tempo uma variável vai existir na memória. O garbage collector cuida de tudo automaticamente. Mas em Rust, entender lifetimes (t...</summary>
  </entry><entry>
    <title>Desvendando Iteradores e Closures em Rust: A Potência Funcional para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0011-iteradores-closures-rust-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0011-iteradores-closures-rust-pythonistas/</id>
    <updated>2026-04-04T12:00:00-03:00</updated>
    <published>2026-04-04T12:00:00-03:00</published>
    <summary>Se você vem do Python e está começando sua jornada em Rust, provavelmente já percebeu que ambas as linguagens possuem recursos poderosos para programação funcional. No entanto, as semelhanças super...</summary>
  </entry><entry>
    <title>Concorrência e Paralelismo em Rust: Desvendando Threads e Async/Await para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0010-concorrencia-paralelismo-rust-threads-async-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0010-concorrencia-paralelismo-rust-threads-async-pythonistas/</id>
    <updated>2026-04-01T12:00:00-03:00</updated>
    <published>2026-04-01T12:00:00-03:00</published>
    <summary>Desenvolvedores Python que estão migrando para Rust frequentemente encontram desafios interessantes quando o assunto é concorrência e paralelismo. Enquanto Python tem seu próprio conjunto de ferram...</summary>
  </entry><entry>
    <title>Desmistificando Traits em Rust: Herança para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0009-desmistificando-traits-rust-heranca-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0009-desmistificando-traits-rust-heranca-pythonistas/</id>
    <updated>2026-03-28T12:00:00-03:00</updated>
    <published>2026-03-28T12:00:00-03:00</published>
    <summary>👋 Bem-vindos, desbravadores! Se você vem do Python e está começando sua jornada em Rust, provavelmente já se deparou com o conceito de traits. Talvez você tenha pensado: “Isso parece com herança de...</summary>
  </entry><entry>
    <title>Tratamento de Erros em Rust: Desmistificando Result e Option para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0008-tratamento-erros-rust-result-option-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0008-tratamento-erros-rust-result-option-pythonistas/</id>
    <updated>2026-03-21T12:00:00-03:00</updated>
    <published>2026-03-21T12:00:00-03:00</published>
    <summary>👋 Bem-vindos, desbravadores! Hoje vamos explorar um dos aspectos mais poderosos e característicos de Rust: seu sistema de tratamento de erros. Se você vem do Python, onde usamos exceções para quase...</summary>
  </entry><entry>
    <title>Dominando Enums em Rust: Do Básico ao Avançado para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0007-enums-rust-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0007-enums-rust-pythonistas/</id>
    <updated>2026-03-14T12:00:00-03:00</updated>
    <published>2026-03-14T12:00:00-03:00</published>
    <summary>🦀🔍 Se você vem do Python, enums (ou “enumerações”) podem parecer apenas uma forma elegante de definir constantes. Mas em Rust, eles são uma superpotência! Neste post, vamos explorar como os enums e...</summary>
  </entry><entry>
    <title>Gerenciamento de Memória em Rust vs Python: Alocação e Desempenho</title>
    <link href="https://desbravandorust.com.br/posts/0006-gerenciamento-memoria-rust-python/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0006-gerenciamento-memoria-rust-python/</id>
    <updated>2026-02-28T12:00:00-03:00</updated>
    <published>2026-02-28T12:00:00-03:00</published>
    <summary>🔍 Imagine que a memória do computador é como uma grande biblioteca. Em Python, temos um bibliotecário (o Garbage Collector) que fica organizando os livros (objetos) para nós. Já em Rust, somos nós ...</summary>
  </entry><entry>
    <title>Entendendo Ownership em Rust: Um Guia para Pythonistas</title>
    <link href="https://desbravandorust.com.br/posts/0005-entendendo-ownership-rust-guia-pythonistas/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0005-entendendo-ownership-rust-guia-pythonistas/</id>
    <updated>2026-02-22T12:00:00-03:00</updated>
    <published>2026-02-22T12:00:00-03:00</published>
    <summary>Se você vem do Python e está começando com Rust, provavelmente já se deparou com mensagens de erro misteriosas sobre “ownership”, “borrowing” ou “value moved here”. Calma, você não está sozinho nes...</summary>
  </entry><entry>
    <title>De Django ORM para SQLx: A Jornada de um backend que desaprendeu a confiar em mágica</title>
    <link href="https://desbravandorust.com.br/posts/0004-django-orm-vs-sqlx/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0004-django-orm-vs-sqlx/</id>
    <updated>2026-02-16T12:00:00-03:00</updated>
    <published>2026-02-16T12:00:00-03:00</published>
    <summary>Este artigo é para quem viveu anos no conforto do Django ORM e está cogitando encarar SQLx em Rust. Vamos falar de produtividade, dor, performance e o que você realmente ganha (e perde) ao largar a...</summary>
  </entry><entry>
    <title>Cargo contra rapa</title>
    <link href="https://desbravandorust.com.br/posts/0003-cargo-contra-rapa/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0003-cargo-contra-rapa/</id>
    <updated>2025-12-03T12:00:00-03:00</updated>
    <published>2025-12-03T12:00:00-03:00</published>
    <summary>Se você vem de linguagens como JavaScript, Python ou PHP, provavelmente já passou pela “fadiga de configuração”. Você quer começar um projeto novo e a primeira hora é gasta decidindo qual gerenciad...</summary>
  </entry><entry>
    <title>Pandas vs Polars: Benchmark com 3 Milhões de Registros</title>
    <link href="https://desbravandorust.com.br/posts/0002-pandas-vs-polars/" rel="alternate" type="text/html"/>
    <id>https://desbravandorust.com.br/posts/0002-pandas-vs-polars/</id>
    <updated>2025-11-21T12:00:00-03:00</updated>
    <published>2025-11-21T12:00:00-03:00</published>
    <summary>Recentemente caiu na minha timeline um vídeo do Lewis apresentando um pacote do python que ele classificou como incrível:</summary>
  </entry>
</feed>
