Voltar aos materiais
NOVIDADESPERFORMANCEGOOGLE-SKILLSPYTHON

Skill do Google para migrar código para Rust: teste de Python 134× mais rápido

Conheça a migrate-to-rust do Google, acesse a skill oficial e veja nosso teste de Python para Rust: 134× mais rápido, com testes e comparação de saída.

Por Mauro Mequelussi

8_MIN
Skill do Google para migrar código para Rust: teste de Python 134× mais rápido
Em resumo

Conheça a migrate-to-rust do Google, acesse a skill oficial e veja nosso teste de Python para Rust: 134× mais rápido, com testes e comparação de saída.

O Google disponibiliza a migrate-to-rust, uma skill para orientar agentes de IA na migração de código legado para Rust. Ela organiza análise, planejamento, reescrita, testes, comparação de resultados e medição de desempenho. No nosso teste com um simulador em Python, o melhor tempo caiu de 2.778 ms para 20,7 ms: aproximadamente 134× mais rápido.

Esse número pertence a um exemplo pequeno, criado pela Escola de Aplicativos. O que merece atenção é o método: medir o original, preservar o comportamento e comprovar o que mudou antes de substituir qualquer parte de um sistema.

Acesse a skill oficial migrate-to-rust no repositório do Google. A pasta reúne o SKILL.md, o script de telemetria e as referências necessárias para entender o fluxo.

Veja o teste de Python para Rust

Google liberou uma skill para migrar código para Rust — testei: 134× mais rápido

O que é a skill migrate-to-rust do Google?

Uma skill é um conjunto de instruções e recursos que um agente de IA pode usar para executar uma tarefa. A migrate-to-rust descreve um processo de engenharia para portar código para Rust; ela não é um conversor que garante uma migração correta com um clique.

A descrição oficial contempla bases em C++, Fortran, Java, Python, C e Shell, recebidas por um endereço de repositório ou por uma pasta local. A proposta inclui arquitetura em Rust seguro, telemetria das etapas e um relatório com os resultados. Nesta análise, consultamos a versão 1.0.0 do arquivo oficial.

O agente ainda precisa compreender o domínio, executar as ferramentas disponíveis no ambiente e lidar com dependências. A presença de uma linguagem na descrição da skill não significa que todo framework escrito nela tenha um substituto direto em Rust.

Como funciona a migração com IA

O fluxo oficial pode ser entendido em cinco passos:

  1. Analisar e medir o código original. Identificar comandos de compilação e execução, registrar a estrutura do projeto e produzir uma referência de desempenho e de saída. Para código externo clonado, a skill exige confirmação dos comandos antes de compilá-lo ou executá-lo.
  2. Planejar a arquitetura. Investigar oportunidades, registrar problemas encontrados e preparar um plano para a versão em Rust.
  3. Reescrever e comparar versões. Criar o projeto Rust, portar os módulos e medir tanto a versão inicial quanto as alterações de organização dos dados.
  4. Verificar o comportamento. Rodar testes, checagens com Clippy e comparações diferenciais com entradas determinísticas. O fluxo limita as tentativas automáticas de correção a cinco por fase, ou ao orçamento de tempo descrito na documentação.
  5. Medir otimizações e documentar. Avaliar PGO quando viável e gerar a telemetria e o infográfico HTML da migração.

A skill solicita #![forbid(unsafe_code)] no código da aplicação. Isso proíbe o uso de unsafe nesses arquivos, mas não comprova que todas as dependências sejam livres de unsafe, nem elimina erros de lógica. Testes e revisão continuam necessários.

Nosso teste: 134× mais rápido em um simulador Python

Usamos um simulador de N corpos em duas dimensões, criado por nós, com 76 linhas de Python. A carga medida tinha 200 corpos, 200 passos e seed 1. É um exemplo com bastante cálculo, adequado para investigar o impacto de uma migração para uma linguagem compilada.

Versão medidaTempoPico de memóriaGanho sobre o Python
Python original2.778 ms15,6 MBReferência
Rust seguro, port direto34,1 ms1,8 MB81,5×
Rust com vetores contíguos e buffers reaproveitados20,7 ms1,7 MB134,2×
Rust com PGO e LTO23,4 ms1,7 MB118,7×

Os números são os melhores tempos observados, não médias: nove execuções para Python e 90 para cada uma das duas primeiras versões Rust. A máquina estava sob carga variável. Portanto, o resultado é uma demonstração local, não um estudo controlado nem uma promessa de ganho para outro projeto.

A versão mais rápida organizou os dados em vetores contíguos, uma abordagem conhecida como Struct-of-Arrays, e reaproveitou buffers. Isso reduziu o trabalho no trecho executado repetidamente. Não atribuímos o ganho exclusivamente à IA: ele combina a mudança de linguagem com decisões de implementação e de layout de memória.

Como conferimos que o resultado continuava correto

O projeto terminou com 17 testes passando, incluindo três testes de documentação, e zero avisos do Clippy nas verificações registradas. Comparamos a saída do Python e do Rust em 100 sementes determinísticas e obtivemos saída idêntica byte a byte nos casos verificados, inclusive no binário com PGO.

A cobertura medida foi de 100% das linhas e 99,5% das regiões. A cobertura de ramos não foi medida; portanto, não apresentamos como cumprida a meta de cobertura de ramos indicada pela skill.

Uma divergência inicial veio apenas da formatação do expoente: o texto produzido por Rust precisava reproduzir o formato do Python. Esse detalhe mostra por que comparar apenas alguns números na tela pode deixar diferenças passarem despercebidas. Já os problemas identificados no legado precisam ser avaliados separadamente: preservar a saída não demonstra que a lógica original seja correta em todas as condições.

PGO sempre melhora o desempenho?

Não. Profile-Guided Optimization usa dados de execução para ajudar o compilador a otimizar o programa. Neste teste, a versão com PGO registrou 23,4 ms, contra 20,7 ms da versão anterior. Não observamos benefício adicional; os resultados também estão sujeitos à variação das medições.

A lição prática é medir cada etapa e escolher a versão que melhor atende ao projeto. Uma otimização prevista no roteiro pode não compensar em uma carga específica.

Como começar a usar a skill

Abra a pasta oficial da migrate-to-rust e consulte o SKILL.md, a pasta scripts e a pasta references. Preserve os recursos juntos ao disponibilizá-los ao seu agente. O modo de registrar ou carregar uma skill depende da ferramenta usada; a documentação consultada descreve o processo de migração, não um comando universal de instalação para todos os agentes.

Comece por um módulo delimitado e forneça ao agente os comandos de teste, as entradas de referência e o objetivo de desempenho. Um pedido inicial útil é:

Use a skill migrate-to-rust para analisar este módulo local.
Identifique os comandos de execução e testes e prepare um plano de migração.
Meça a versão original e defina como comparar as saídas.
Apresente o plano antes de começar a reescrita.
Registre os benchmarks e qualquer diferença de comportamento.

Esse pedido acrescenta uma pausa para revisão do plano. O fluxo padrão da skill prevê continuar do planejamento para a implementação, salvo quando o usuário limita o escopo. Depois da revisão, a migração pode avançar com critérios claros para aceitar ou rejeitar o resultado.

Vale migrar todo o sistema para Rust?

Comece pelo gargalo medido. Rotinas de cálculo, simulações e processamento intensivo de dados são candidatas a uma avaliação. Um sistema cujo tempo é gasto esperando banco de dados, rede ou serviços externos pode precisar de outra intervenção primeiro.

Considere também o custo de manutenção, as bibliotecas utilizadas, a integração com o restante da aplicação e o conhecimento da equipe. Migrar um componente lento pode ser mais viável do que reescrever uma aplicação inteira. A skill ajuda a organizar o trabalho; a decisão deve vir de evidências sobre o seu sistema.

Perguntas frequentes

A skill é do Google?

Ela está disponível no repositório público google/skills, na pasta skills/developers/migrate-to-rust. O link neste artigo leva a esse material oficial por um redirect da Escola de Aplicativos.

Posso migrar Python para Rust com ela?

Python está entre as linguagens mencionadas na descrição oficial. Nosso exemplo demonstrou essa possibilidade em um simulador pequeno. Dependências, interfaces e comportamento do seu projeto precisam ser avaliados antes da migração.

Meu sistema ficará 134× mais rápido?

Esse foi o ganho do melhor tempo observado no nosso exemplo. Outro código, ambiente ou carga pode produzir um resultado diferente. Meça o desempenho antes e depois e compare as saídas.

Preciso saber Rust para usar a skill?

O agente pode ajudar com a implementação, mas entender Rust facilita revisar o código, avaliar dependências e manter o resultado. Uma aplicação que compila ainda precisa de testes e de avaliação técnica.

Acesse a skill e acompanhe o teste

Consulte a skill oficial migrate-to-rust do Google e assista ao vídeo da Escola de Aplicativos. Use o fluxo para transformar uma hipótese de desempenho em uma comparação verificável.

Referência oficial: SKILL.md no repositório google/skills, versão 1.0.0 consultada em 13/10/2026. Os benchmarks e resultados de verificação apresentados são do experimento local da Escola de Aplicativos, não benchmarks publicados pelo Google.

Mentoria Ecosystem

Quer parar de alugar o seu negócio? Na Mentoria Ecosystem você troca a pilha de SaaS por um ecossistema seu — checkout, financeiro, atendimento e CRM num painel só.

CONHECER_A_MENTORIA →
Continue explorando
Ver todos os artigos →