# 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.
**Autores:** Mauro Mequelussi
**Publicado:** 2026-10-13T19:28:58.988920981Z
**Atualizado:** 2026-10-13T20:00:21.345176722Z
**Tags:** performance, google-skills, python, migrate-to-rust, programacao-com-ia, rust, agentes-de-ia, vibe-coding
---
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](https://l.escoladeaplicativos.com.br/google-migrate-to-rust).** 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

::video-player{src="https://www.youtube.com/watch?v=RO5D8W59YHg" title="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 medida | Tempo | Pico de memória | Ganho sobre o Python |
| --- | --- | --- | --- |
| Python original | 2.778 ms | 15,6 MB | Referência |
| Rust seguro, port direto | 34,1 ms | 1,8 MB | 81,5× |
| Rust com vetores contíguos e buffers reaproveitados | 20,7 ms | 1,7 MB | 134,2× |
| Rust com PGO e LTO | 23,4 ms | 1,7 MB | 118,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](https://l.escoladeaplicativos.com.br/google-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 é:

```text
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](https://l.escoladeaplicativos.com.br/google-migrate-to-rust) e [assista ao vídeo da Escola de Aplicativos](https://www.youtube.com/watch?v=RO5D8W59YHg). 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](https://github.com/google/skills/blob/main/skills/developers/migrate-to-rust/SKILL.md), 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.