Vite skriver om Rollup i Rust: – Vi jobber med Rolldown!

Vil kunne gjøre Vite enda raskere, ifølge Evan You.

Evan You er mannen bak både Vue.js og Vite. Nå jobber han med Rolldown – et Rust-basert raskere alternativ til Rollup. 📸: Kurt Lekanger
Evan You er mannen bak både Vue.js og Vite. Nå jobber han med Rolldown – et Rust-basert raskere alternativ til Rollup. 📸: Kurt Lekanger Vis mer

Byggeverktøyet Vite har i løpet av forholdsvis kort tid blitt veldig populært, og som vi tidligere har skrevet brukes det i alt fra hobbyprosjekter til populære rammeverk som Nuxt og SvelteKit.

Blant årsakene til at Vite har blitt så populært, er ikke bare at det er enkelt å bruke – men også at det er lynkjapt.

Nå kan det hende Vite blir enda raskere. I forbindelse med ViteConf annonserte Vite- og Vue-skaper Evan You at de jobber med å skrive om bundleren Rollup i Rust – og lage et produkt de kaller Rolldown.

Vite.js benytter byggeverktøyet/bundleren Rollup "under panseret" når man bygger applikasjonen for produksjon.

Evan You: – Vesentlig raskere

Selv om mange oppfatter Vite som et stort steg i retning av å gjøre byggeprosessene raskere, er det fortsatt stort forbedringspotensiale, sa Evan You i sin presentasjon på ViteConf.

Ifølge Vites egne undersøkelser blant brukerne, er det mange som påpeker at byggehastigheten er relativt treg når man bygger en applikasjon for produksjon.

«Forskjellen i hastighet sammenlignet med native bundlere, som ESBuild eller Bun, er enorm.»

– Det er kanskje det største problemet, fordi vi fortsatt bruker Rollup for produksjons-bygg. Forskjellen i hastighet sammenlignet med native bundlere, som ESBuild eller Bun, er enorm, sa You.

Det er også inkonsistens mellom dev- og prod-miljøer, ettersom man i dev-miljøet bruker en hybridstrategi der kildekoden serves som native ES Modules (ESM), mens avhengighetene bygges på forhånd med ESBuild. I produksjon brukes imidlertid Rollup til å bundle alt sammen.

Ved å skrive hele Rollup fra bunnen av i Rust mener You at både disse og en rekke andre problemer vil kunne løses:

  • Vesentlig raskere produksjonsbygg
  • Kompatibelt med Rollup
  • Mer konsistent på tvers av prod / dev
  • Mer robust SSR avhengighets-håndtering

En lang vei å gå

Rolldown er ikke noe utviklere kan forvente å se i Vite med det aller første.

– Det vil selvfølgelig være en masse arbeid! sier You.

Foreløpig er arbeidet på et tidlig stadium, men You håper å kunne legge ut koden som åpen kildekode før utgangen av året.

Rolldown skal kunne brukes både som en del av Vite, men også som et frittstående produkt – og i praksis erstatte Rollup.

På spørsmål om hvorfor Vite ikke heller vurderer Turbopack, som er et Rust-basert alternativ til Webpack fra Vercel, så svarer You:

– Så langt er ikke Turbopack en gang tilgjengelig på utsiden av Next, og det er ikke godt å si hvordan det vil fungere med JS-plugins. Det er også mange interne designvalg som gjør at det vil være veldig vanskelig å få det til å fungere godt i Vite.

Du kan se Evan Yous presentasjon her (videoen inneholder alt fra ViteConf-konferansen, for de som er interessert):