Det kinesiske IT-selskapet ByteDance er her i Norge mest kjent for å stå bak TikTok-appen, men selskapet lager også programvare basert på åpen kildekode.
Nå har ByteDance lansert Rspack v1.0, som de kaller en "neste-generasjon JavaScript-bundler skrevet i Rust".
Rust is taking over
— Francesco (@FrancescoCiull4) August 28, 2024
Rspack 1.0, a prod-ready Rust-based JS bundler, is 10x faster than Webpack.
Compatible with most webpack APIs, used by Microsoft, Amazon, TikTok.
100k npm downloads/week
1000 ByteDance apps
Improved:
-performance
-compatibility
-bundles
-APIs
-TS handling pic.twitter.com/S7T4vJBLwb
Det har vært laget mange andre bundlere i et forsøk på å lage noe raskere og bedre enn webpack, som for eksempel Parcel, Rollup, esbuild og Turbopack.
Fordelen med Rspack skal imidlertid være at den er kompatibel med webpack-APIene.
100.000 ukentlige nedlastinger
Rspack er åpen kildekode (MIT-lisens) og allerede i utstrakt bruk internt i ByteDance. Men bundleren har også blitt tatt i bruk av mange andre etter at versjon 0.1 ble publisert for 18 måneder siden.
– Rspacks antall ukentlige nedlastinger på npm har passert 100.000, skriver Rspack.
Blant selskapene som nå bruker Rspack nevnes Microsoft, Amazon, Alibaba, Bit.dev, Discord, og flere andre – i tillegg til ByteDances egne tjenester.
I tillegg til bundleren Rspack har ByteDance for øvrig også laget et tilhørende byggeverktøy – Rsbuild, som er en konkurrent til blant annet Vite.
Den anbefalte måten å prøve ut Rspack på er via Rsbuild:
npm create rsbuild@latest
Ti ganger raskere
Siden versjon 0.1 ble sluppet har Rspack fått en masse forbedringer og ny funksjonalitet.
Ettersom bundleren er skrevet i Rust skal den være 10 ganger raskere enn webpack, og i mange tilfeller enda raskere. Den har også fått såkalt lazy compilation som skal gi bedre ytelse i store prosjekter.
Her er Rspacks egen sammenligning av byggetid for Rspack 0.1, 1.0 og webpack:
Og hvis ikke dette er kjapt nok, skal det fortsatt være rom for å optimalisere ytelsen ytterligere.
– Etter 1.0-lanseringen har vi planer om å forbedre ytelsen mange ganger for å bedre støtte storskala-applikasjoner, skriver selskapet.
Bedre webpack-kompatibilitet
Da Rspack 0.1 ble lansert som åpen kildekode for atten måneder siden var ikke veldig mange webpack-API-er og hooks på plass ennå, noe som gjorde at kompatibiliteten med webpack-plugins og loadere var begrenset.
Dette skal imidlertid ha blitt mye bedre nå, og ifølge Rspack er bundleren kompatibel med nesten alle loadere. Og mer enn 80 prosent av de mest nedlastede webpack-pluginene skal kunne brukes i Rspack – eller ha alternative plugins.
Støtten for ulike rammeverk og biblioteker har blitt mer omfattende enn før, og inkluderer blant annet React, Preact, Vue, Solid, Svelte og NestJS.
Ellers nevner vi også at bundlestørrelsen du ender opp med har blitt mindre enn i tidligere versjoner, og nå skal være like liten eller mindre enn webpack. Men, ifølge Rspack, med en bedre utvikleropplevelse (DX).