- Mako adalah alat build frontend berbasis Rust yang "sangat cepat" dan "production-grade"
- Dirilis pada 2023.3, lalu menjadi open source setahun kemudian
- Proyek ini dimulai karena dibutuhkan kecepatan build yang "sangat cepat"
- Istilah "production-grade" digunakan karena sejak 2023.11.24, Mako telah dirilis resmi secara internal di Ant Group (sebelumnya Alipay)
- Sudah tervalidasi lewat ribuan proyek serta beragam paket npm dan versinya yang digunakan di dalamnya
Alasan pengembangan Mako
- Tahun lalu (2023.3), tim memulai tiga proyek: Rust, SSR, dan AIG, lalu memilih Rust untuk mengatasi masalah performa build
- Alasan tidak memakai tool Rust yang sudah ada dan memilih membuat sendiri adalah kompleksitas
- Tingkat kematangan library komunitas serta kecocokannya dengan kebutuhan Ant
- Perlunya memiliki kontrol penuh (karena banyak kustomisasi yang wajib dilakukan untuk alasan bisnis)
- Meta-framework modern membutuhkan framework pada waktu kompilasi selain build. Terutama pada skenario SSR dan RSC, dibutuhkan banyak kompilasi
- Kebutuhan untuk mempelajari Rust dan mengembangkan kapabilitas tim
- Timeline Mako: kickoff pada 2023.3, versi pertama yang bisa digunakan pada 2023.7, dirilis internal di Ant pada 2023.11, dan menjadi open source pada 2024.6
Kecepatan
- Mako menaruh banyak upaya pada kecepatan. Data benchmark-nya sebagai berikut
- Benchmark dijalankan pada proyek yang juga digunakan untuk menguji Turbopack di Mac Book Pro M2 Max
- Mencakup dimensi seperti waktu dev cold start, waktu HMR untuk root node dan leaf node, waktu production build, ukuran JS bundle, dan lainnya
- Jika dibandingkan dengan versi sebelumnya
- Saat membangun seluruh proyek Ant Design Pro, Webpack membutuhkan 16 detik, sedangkan Mako 3,9 detik, atau 4x lebih cepat
- Saat membangun seluruh proyek Ant Design Pro, Mako menghadirkan hot update yang nyaris real-time
- Saat membangun proyek Smallfish, framework hybrid intranet berbasis RSC, waktu build proyek scaffold dipangkas dari 36,7 detik menjadi 1,2 detik
- Selain itu, Mako juga memiliki fitur SSU eksperimental, yang mirip dengan implementasi MFSU sebelumnya, untuk melakukan packaging dan caching dependensi
- Tergantung pada rasio dependensi terhadap source code, kecepatan dev hot start-up bisa meningkat 10~50x
1 komentar
Opini Hacker News
Performanya bisa kalah dibandingkan esbuild atau swc
Alat ini mendukung fitur nonstandar sehingga bisa membuat pengguna terikat pada bundler tertentu
Fitur utama Vite adalah memanfaatkan sistem plugin rollup yang sudah ada
Karena ada kata "Rust" di judul, saya kira ini adalah compiler Rust untuk web
Saya bukan pengembang web, jadi bingung apa sebenarnya yang dilakukan bundler
Saya bukan pengembang web, tetapi rutin mengembangkan aplikasi web
Rspack (ByteDance) telah merilis versi 1.0
Bundler JavaScript berbasis Rust lain yang menarik adalah Oxid / OXC
Penasaran apa yang terjadi ketika bundling mencapai batasnya
Penasaran apakah ini ada hubungannya dengan MakoTemplates