Node.js 26.2.0:後量子 ML-DSA/ML-KEM 進駐 Web Crypto,QUIC 完整實作落地
Node.js Blog · 2026-05-20
Node.js 26.2.0 於 2026 年 5 月 20 日釋出,這是 26.x Current 頻道的第二個次要版本,帶來三個技術面重大更新:後量子密碼演算法整合進 Web Cryptography API、QUIC 協定完整實作落地,以及 stream.compose() 升格為穩定 API。
後量子密碼:ML-DSA 與 ML-KEM
透過 BoringSSL 後端,Node.js 26.2.0 將 NIST 後量子密碼標準演算法接入 SubtleCrypto(PR #63255)。新增支援的演算法包含:
- ML-DSA(Module-Lattice-Based Digital Signature Algorithm,FIPS 204):格基數位簽章,為後量子時代的 ECDSA 替代方案
- ML-KEM(Module-Lattice-Based Key Encapsulation Mechanism,FIPS 203):格基金鑰封裝,對應 X25519/P-256 的 ECDH
- ChaCha20-Poly1305 與 AES-KW 同步加入 Web Crypto API
- CryptoKey 與 KeyObject 的內部槽位保護強化(PR #63111)
ML-DSA 與 ML-KEM 均為 NIST 在 2024 年正式標準化的後量子演算法。格密碼學(lattice-based cryptography)的安全性建立在最短向量問題(SVP)的難解性上,目前已知的量子演算法無法有效攻破,使其成為「量子威脅後」公鑰基礎設施的核心。
QUIC 協定完善
QUIC 實作在本版本完成內部架構整合(PR #62876),底層函式庫 ngtcp2 升至 1.22.1。新增功能包含 ALPN 不符時正確觸發 OpenSSL alert(PR #63193)與 --allow-net 權限模型支援(PR #63184)。
其他 SEMVER-MINOR 改動
HTTP writeInformation() 方法(PR #63155)讓伺服器可在最終回應前發送任意 1xx 狀態碼:
response.writeInformation(103, 'Link', '</style.css>; rel=preload; as=style');Temporal.Instant 支援進入 fs.Stats(PR #60789),stream.compose() 升格為穩定 API。Stream 模組獲得多項效能改進,包含同步可迭代物件的快速路徑(PR #63318)與廣播 cursor 計數快取(PR #63322)。
主要依賴更新
| 依賴 | 新版本 |
|---|---|
| undici | 8.3.0 |
| SQLite | 3.53.1 |
| simdjson | 4.6.4 |
| ngtcp2 | 1.22.1 |
| Corepack | 0.35.0 |
瀏覽器內建置 OCI 容器映像檔:用 TypeScript 操作 tar 層與 manifest
ochagavia.nl · 2026-05-26
Adolfo Ochagavía 發布一個 proof-of-concept,示範如何在不依賴任何後端的情況下,完全在瀏覽器沙盒內建置符合 OCI 規格的容器映像檔。專案以 TypeScript(65.8%)與 Svelte(31.6%)撰寫,透過 Vite 建置,原始碼已開源。
核心概念
OCI 容器映像檔的本質是一組壓縮 tar 層(layer),加上描述各層的 manifest.json 與 config.json。這些格式純粹是 JSON 加上 tar 壓縮,現代瀏覽器的 JavaScript 引擎完全有能力操作,無需任何原生二進位工具。建置流程為:從遠端 registry 下載 base image → 在記憶體中解包各 layer → 執行初始化 shell script → 打包修改後的檔案系統為新 layer → 重新產生 manifest → 輸出完整 OCI tar。
技術堆疊
選擇 TypeScript + Svelte 表明此方案完全在 JavaScript 生態內運作,不依賴 WebAssembly(WASM)或 native 模組。tar 的打包與解包、JSON manifest 的產生,以及 OCI spec 中定義的 digest 計算(SHA-256),均以純 JS 實作。瀏覽器的 crypto.subtle API 提供了 SHA-256 等密碼學操作,使 digest 計算可在 sandbox 內完成。
限制與適用場景
瀏覽器沙盒決定了此方案的天花板:無法執行需要 root 權限、syscall 模擬或複雜網路的 build step。作者自述這是「mostly a gimmick」,但其概念意義在於:容器建置不必然依賴 Docker daemon 或任何特權進程,理解 OCI 規格即可用任意語言實作客製化工具。對需要輕量化 OCI 映像操作的 CI 插件或工具開發者,這個 demo 值得作為起點參考。
原始來源:ochagavia.nl、GitHub: aochagavia/in-browser-container-builder
Audiomass:505 HN 點的開源瀏覽器多軌音訊編輯器與 Web Audio API 的工程極限
audiomass.co · 2026-05-26
Audiomass 是一套以 Web Audio API 為核心建構的開源瀏覽器端音訊編輯器,無需任何外掛或原生 app 即可在瀏覽器中執行非破壞性編輯。2026 年 5 月 26 日以「Show HN」形式發布,獲得 505 點,成為當日前端工程圈的注目焦點。
Web Audio API 的工程疆界
Web Audio API 提供完整的訊號處理圖(audio graph)架構:AudioContext 管理所有節點,AudioBuffer 保存 PCM 資料,AudioWorkletNode 允許在獨立執行緒上執行自訂 DSP 程式碼。多軌編輯的挑戰在於精確的時間軸同步:AudioContext.currentTime 雖號稱高精度,但受限於渲染執行緒優先序,跨軌同步仍需謹慎對齊起始點。
波形渲染透過 Canvas 2D API 完成,每次 zoom 或捲動都需要對 PCM 資料重新取樣(downsampling)以生成視覺準確的峰值波形。對長音軌而言,這是效能瓶頸,多數實作採用預計算的 min/max 峰值樹(peak tree)加速重繪。
Encode/Decode 的挑戰
純前端音訊方案意味著所有 encode/decode 必須在 JS 或 WebAssembly 中完成。MP3、AAC 等有授權疑慮的格式解碼器通常以 WASM 移植的 libmpg123 或 ffmpeg.wasm 實現。WAV 格式因其 PCM 原始資料特性最易處理。匯出時 OfflineAudioContext 可離線渲染混音結果,再手動封裝輸出為 Blob 下載。Audiomass 的存在印證瀏覽器已具備足夠的音訊工程能力,但在大型多軌 session 的記憶體管理與精準剪輯點同步方面,Web 平台與原生 DAW 之間仍有明顯落差。