Bun 實驗性 Rust 移植在 Linux x64 glibc 達到 99.8% 測試相容性
GitHub oven-sh/bun · 2026-05-10
Bun runtime 正在進行從 Zig 到 Rust 的大規模移植,根據 claude/phase-a-port 分支的 PORTING.md 技術文件,Phase A 已在 Linux x64 glibc 上達到 99.8% 測試相容性,相關進展在 HackerNews 引發廣泛討論(308 則評論)。
核心改動
Phase A 的目標是「草稿式翻譯」:忠實重現 Zig 程式邏輯,不要求 Rust 程式碼立即能編譯。Bun 的程式碼庫依功能領域拆分為 20+ 個 crate(http、install、bundler 等),透過 bun_<area>::Type 跨 crate 引用。
記憶體模型有明確限制:不使用 async/await、tokio 或標準 I/O(Bun 自有 event loop);AST 類 crate 用 Arena 分配,其餘用全域 mimalloc;JSC 整合需用 Strong/JsRef 而非裸 JSValue,以兼容 conservative GC stack scanning。字串永遠是位元組(Vec<u8>/&[u8]),不用 String。
// Zig 字串 → Rust 對應
bun_str::String // WTFString zero-copy 保留
Vec<u8> // 可變位元組緩衝區
&[u8] // 借用位元組切片規格細節
錯誤處理使用 bun_core::Error(Copy NonZeroU16),Phase B 才會細化為局部 enum。並發使用 Arc/Rc(所有權)與 parking_lot::Mutex(跨執行緒狀態)。所有 unsafe 區塊需要附上 SAFETY: 注釋以對應 Zig 原本的不變量。Phase A 輸出 .rs 檔案與 .zig 並存,並記錄 confidence level 與 TODO 數量。
影響範圍
此移植若完成,Bun 將從 Zig 生態轉向 Rust 生態,在記憶體安全與工具鏈成熟度上有所提升。對 JavaScript runtime 生態而言,Bun 的 Rust 移植是繼 Deno 之後又一個主要 JS runtime 向 Rust 靠攏的案例。Phase B 預計進行可編譯優化與 API 精化。
Vue 3.6.0-beta.11 發布,3.6 Beta 系列持續迭代
GitHub vuejs/core · 2026-05-07
Vue.js v3.6.0-beta.11 於 2026-05-07 發布,這是 v3.6 系列的第 11 個 Beta 預發布版,v3.5.34 穩定版則在一天前(2026-05-06)同步釋出。Vue 3.6 的正式 changelog 維護在 minor 分支的 CHANGELOG.md 中。
核心改動
Vue 3.6 系列的主要新功能包括:Vapor Mode(無虛擬 DOM 的編譯時最佳化渲染模式)的持續開發、基於 Signals 概念的細粒度反應性改進、以及 v-bind 與 useTemplateRef 的功能強化。Beta 系列的每個版本主要聚焦於 Vapor Mode 的穩定性修復與效能調優。
與此同時,v3.5.34 穩定版修復了 Effect 作用域洩漏問題,這是上一版修補引入的回歸,影響到使用 effectScope() 的元件在卸載時的清理行為。
影響範圍
Vue 3.6 Beta 目前不建議用於生產環境,但對於希望提前評估 Vapor Mode 效能提升的開發者,可透過在 vite.config.ts 中設定 vue({ features: { customElement: true } }) 以及 Vapor-specific 編譯選項進行實驗。穩定版 v3.5.34 的 Effect 修復適用於所有 v3.5.x 使用者,建議盡快升級。