deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

Vite'ın plugin-react eklentisi, yerel Rust React Compiler desteği ekledi; bildirilen hızlanma 17,6 kat

Vite'ın plugin-react v6.1.0 sürümü, oxc tabanlı Rust React Compiler'ı artık yerel olarak çalıştırabiliyor; 1.036 dosyalık bir uygulamada 14,3 saniyelik derleme adımı 0,81 saniyeye inerken, Babel sürümünde eksik kalan noktalar da giderildi.

Vite'ın plugin-react eklentisi, yerel Rust React Compiler desteği ekledi; bildirilen hızlanma 17,6 kat

Yerel React Compiler, Vite'ın React eklentisine geldi

@vitejs/plugin-react'ın 6.1.0 sürümü, React Compiler'ı oxc araç zincirinde yerel olarak çalıştırmanın isteğe bağlı ve deneysel bir yolunu ekledi. 4 Eylül'de Hacker News ana sayfasına ulaşan blog.master.dev'deki bir yazıya göre bunu etkinleştirmek tek satırlık bir değişiklik: Vite yapılandırmanızda eklentiye compiler: true geçirin. Temeldeki Rust uygulaması, 4 Ağustos 2026'da bunun için resmi desteği duyuran oxc ekibinden geliyor.

Yazının yazarı, ön ucu 1.036 dosyalık bir React Router kod tabanı olan Outlyne adlı web sitesi oluşturucunun geliştiricisi. Bu kod tabanını yerel derleyiciye geçirdikten sonra derleme aşaması, Babel ile 14,3 saniyeden tek iş parçacıklı 0,81 saniyeye düştü; bu da derlemenin o bölümünde yaklaşık 17,6 katlık bir iyileşme anlamına geliyor.

Rakamların kapsadığı ve kapsamadığı şeyler

Hızlanma yalnızca derleyici adımı için geçerli; çoğu derleme, React bileşenlerini derlemekten çok daha fazlasını yapar. Outlyne örneğinde tam derleme 22,1 saniyeden 9,3 saniyeye indi; bu, genel olarak yaklaşık 2,4 kat daha hızlı demek. oxc proje lideri Boshen, yazıda alıntılanan ön değerlendirmelere göre Rust derleyicinin Babel'in hızından on kattan fazla olduğunu söylüyor.

Yazar kazancı pratik terimlerle çerçeveliyor: Ajan destekli geliştirme kodun ne sıklıkla derlendiğini artırdıkça GitHub Actions dakikaları gerçek bir maliyet kalemi hâline geldi ve CI beklemekle geçen sürenin azalması başlı başına bir fayda.

Saf hızın ötesinde uyumluluk düzeltmeleri

Yazar asıl dil desteğine dair heyecanlı. Rust derleyici, Babel tabanlı derleyicinin v1.0 sürümünde hâlâ var olan eksikleri çoktan giderdi:

  • İlk kararlı sürümde birçok benimseyeni durduran, try/catch blokları içindeki koşullu mantık.

  • Sonrasında iç içe bir closure içinde okunan, destructuring ile ayrıştırılmış bir bileşen prop'unun yeniden atanması; önce atlanan bir örüntü.

  • Bir class yardımcısına geçirilen nesnede dinamik adlandırılmış anahtarlar gibi hesaplanan nesne özellik anahtarları.

Outlyne için bu düzeltmeler, yedi fonksiyonun daha optimize edilebilmesi demekti: beşi try/catch değişikliğinden, ikisi hesaplanan anahtarlardan. Hâlâ derleyicinin bir bileşeni ya da hook'u atlamasına neden olan iki örüntü var: bir try bloğu içinden throw atmak ve ??=, &&= ve ||= mantıksal atama operatörleri. Aktif geliştirme artık Rust uygulamasında yapıldığı için, iddiaya göre bu düzeltmeler yerleştiğinde yerel kullanıcılara ulaşıyor; Babel yolu ise olduğu yerde kalıyor.

Lint ve derleme artık tek bir derleyici paylaşıyor

Bir de tutarlılık faydası var. Yazar daha önce derleme daha eski bir derleyici sürümü çalıştırırken Oxlint'in React Compiler desteğini kullanıyordu ve oxc'ye açtığı bir hata, sürüm uyumsuzluğu olarak ortaya çıktı: Oxlint, yazarın v0.144.0 derlemesinin desteklemediği bir örüntüyü destekleyen oxc-transform-react v0.145.0 kullanıyordu. Her iki araç da aynı derleyicide olduğunda, linter'ın nelerin optimize edildiğine dair görünümü derlemeyle eşleşiyor ve bir bileşenin uyarı vermeden derlenemeyebildiği boşluk kapanıyor.

Nasıl geçilir

Vite v8 veya daha yenisiyle @vitejs/plugin-react kullanırken geçiş çoğunlukla yapılandırmayı silmek anlamına geliyor. oxc-transform-react paketini kurun, bayrağı etkinleştirin ve @rolldown/plugin-babel paketini kaldırın:

js // vite.config.js import { defineConfig } from "vite"; import react from "@vitejs/plugin-react";

export default defineConfig({ plugins: [react({ compiler: true })], });

Framework modundaki React Router, plugin-react yerine kendi Vite eklentisini çalıştırıyor. Bu tür kurulumlar için yazı, yapılandırmadaki vite-plugin-babel, babel-plugin-react-compiler ve @babel/preset-typescript paketlerinin yerini alan ve derleme hattının geri kalanından bağımsız olarak çalışan @acusti/vite-plugin-react-compiler paketini öneriyor.

Neden önemli

React Compiler otomatik memoization vadediyor, ancak benimsenmesi her derlemede Babel biçiminde bir vergi ödemek anlamına geliyordu. Yerel bir Rust yolu bu maliyeti kesiyor; bu hem geliştirici geri bildirim döngüleri hem de ajan odaklı iş akışlarının sürekli yukarı ittiği CI bütçeleri açısından önemli. En az bunun kadar önemlisi, bileşenleri sessizce optimize edilmemiş bırakan uyumluluk boşluklarını ortadan kaldırması ve lint'i derlemeyle hizalayarak atlamaların görünür olması. Özellik hâlâ deneysel olarak etiketli ve başlıktaki çarpanlar yalnızca derleme adımına uygulandığından, ekipler 17 katlık bir derleme beklemekten önce kendi uçtan uca rakamlarını ölçmeli. Yine de bu, JavaScript araç zincirinin Rust'a taşınan bir diğer önemli parçasını işaret ediyor ve Vite kullanıcıları için React Compiler'ı benimsemeyi maddi olarak çok daha ucuz kılıyor.

  • #react
  • #vite
  • #rust
  • #build-tools
  • #javascript

İlgili yazılar