前端前線 2026 年 5 月 10 日

2026-05-10 — Bun Rust 移植達 99.8% 相容性、Vue 3.6.0-beta.11

primary=https://github.com/oven-sh/bun/blob/claude/phase-a-port/docs/PORTING.md primary=https://github.com/vuejs/core/releases/tag/v3.6.0-beta.11

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::ErrorCopy 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 精化。

原始來源:GitHub oven-sh/bun PORTING.md


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-binduseTemplateRef 的功能強化。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 使用者,建議盡快升級。

原始來源:GitHub vuejs/core Releasesv3.5.34


End of article
0
Would love your thoughts, please comment.x
()
x