Vercel anuncia Turbopack: sucessor do Webpack baseado em Rust
A cada vez que a Vercel migrou de uma ferramenta baseada em JavaScript para uma baseada em Rust, houve uma imensa melhoria. Migrar do Babel resultou em uma transpilação 17x mais rápida. Substituir o Terser resultou em uma minificação 6x mais rápida, reduzindo os tempos de carregamento e o uso de largura de banda. Hoje, anunciaram o Turbopack.
O Turbopack é construído em uma nova arquitetura incremental, onde em aplicativos grandes, ele mostra atualizações 10x mais rápidas que o Vite e 700x mais rápidas que o Webpack. Em aplicativos ainda maiores, a diferença é maior – geralmente 20 vezes mais rápido que o Vite.
Em um aplicativo com 3.000 módulos, o Turbopack leva 1,8 segundo para inicializar, enquanto o Vite leva 11,4 segundos.
O Turbopack é construído sob o Turbo: uma estrutura de memoização incremental de código aberto para Rust. O Turbo pode armazenar em cache o resultado de qualquer função no programa. Quando o programa for executado novamente, as funções não serão executadas novamente, a menos que suas entradas tenham sido alteradas. Essa arquitetura granular permite que o programa ignore grandes quantidades de trabalho, no nível da função.
Mais detalhes sobre os conceitos fundamentais do Turbopack podem ser encontrados na documentação.
O Turbopack será usado para o servidor de desenvolvimento no Next.js 13. Ele alimentará o HMR e suportará os React Server Components nativamente, bem como TypeScript, JSX, CSS etc. O Turbopack eventualmente também será usado nas compilações de produção do Next.js, tanto localmente quanto na nuvem.