前端前線 2026 年 6 月 14 日

2026-06-14 — Pyodide 314.0.0 升級 Python 3.14 並開放 PyPI WebAssembly wheel 發佈、Webxdc 定義聊天室開放應用規範、CSS Grid Lanes 互動指南上線

primary=https://github.com/pyodide/pyodide/blob/314.0.0/docs/project/changelog.md primary=https://webxdc.org/docs/spec/ primary=https://gridlanes.webkit.org/ primary=https://webkit.org/blog/18098/introducing-the-field-guide-to-grid-lanes/

Pyodide 314.0.0 正式發布:版本號跟上 Python 3.14,WebAssembly 套件可直接發佈至 PyPI

Pyodide Project · 2026-06-09

背景

Pyodide 是將 CPython 編譯至 WebAssembly 的執行環境,讓 Python 程式碼能夠直接在瀏覽器或 Node.js 中運行。314.0.0 於 2026 年 6 月 9 日發布,版本號首次採用與 CPython 主版本一致的命名策略(3.14.x314.x.x),以避免日後的版本號衝突。此前版本 0.29.4 引入了 pyemscripten 平台標籤,使第三方套件得以將 WebAssembly wheel 上傳至 PyPI。

核心改動

本次底層升級至 Python 3.14.2 與 Emscripten 5.0.3(PR #6161),是 ABI 層級的重大更新。sqlite3lzma 標準函式庫模組現在直接打包進 Pyodide 核心,無需額外載入;pydecimaltest 套件則從發行版移除(PR #6151)。ssl 模組改為存根實作,節省超過 3 MB 未壓縮體積,實際 SSL/TLS 連線操作將拋出 NotImplementedError(PR #6044)。

另一個重要的破壞性變更是 pyodide.asm.js 更名為 pyodide.asm.mjs,正式宣告它是 ES 模組(PR #6111)。受影響的場景包括 Classic Worker、Service Worker 及各類 Bundler 設定,須更新引入路徑與靜態匯入方式。

規格細節

JavaScript 互通性方面,具有 length 屬性且可迭代的 JS 物件現在自動視為類陣列,支援下標存取與切片(PR #5991#6019)。pyodide.ffi.JsBigInt 的加入(PR #6022)讓 JavaScript bigint 與 Python int 之間的轉換可以完整往返,大於 2**53 的整數不再有精度損失。Node.js 環境新增實驗性 socket 支援(PR #6191)。

影響範圍

生態系層面,透過 pyemscripten 平台標籤,第三方套件現在可以直接向 PyPI 發佈 WebAssembly wheel,讓使用者透過 micropip 安裝時無需再依賴 Pyodide 內建的鎖定清單。以下為主要 API 異動摘要:

  • pyodide.asm.jspyodide.asm.mjs(ES Module)
  • fullstdlib 選項廢棄,成為無操作(no-op)
  • hashlib 的 OpenSSL 相關雜湊函式不再提供
  • PyProxyPyBufferView 新增 [Symbol.dispose],支援 Explicit Resource Management
  • 新增 compression.zstd 模組(CPython 3.14 原生功能)

原始來源:Pyodide Changelog · GitHub


Webxdc:讓聊天室變成應用程式平台的開放標準

webxdc.org · 2026-06-14

原本的問題

傳統的聊天內嵌小應用(mini app)往往需要中央伺服器、App Store 審核,以及龐大的使用者資料管理基礎設施。Webxdc 是一套開放格式規範,讓開發者只需一個 .xdc 壓縮檔,就能在 Delta Chat、Cheogram 等聊天平台上分發可互動的 Web 應用,完全無需自架後端。所有加密、傳遞與身份驗證都外包給宿主訊息應用程式處理,開發者只需專注於應用邏輯。

採用的方法

.xdc 檔案本質上是 ZIP 壓縮包,內含 HTML、CSS 與 JavaScript。應用在聊天客戶端的沙盒 WebView 中執行,零網路存取權限,無法追蹤使用者或外洩資料(已通過獨立安全審計)。核心 JavaScript API 極為精簡:

  • sendUpdate(payload, description):向所有對話參與者廣播狀態變更
  • setUpdateListener(callback, serial):訂閱其他用戶端的更新,實現響應式同步
  • sendToChat(content):將訊息回傳至聊天介面本身
  • joinRealtimeChannel():透過 Iroh 整合支援即時協作
  • selfAddr / selfName:取得使用者識別,無需集中式帳號系統

實際效果

目前已有多個聊天平台支援 Webxdc,涵蓋電子郵件協議(Delta Chat)與 XMPP 協議(Cheogram、Arcanechat)。開發工具 webxdc-dev 模擬器可在本地模擬多使用者情境,降低開發門檻。由於不依賴任何特定的訊息傳輸協議,Webxdc 規範本身具備跨平台可移植性;官方規格亦收錄 CRDT 理論文件,用以處理多使用者共享狀態的衝突解決問題。

原始來源:Webxdc Specification


CSS Grid Lanes 互動學習指南上線:四行程式碼實現純 CSS 瀑布流排版

WebKit Blog · 2026-06-10

背景

WebKit 團隊於 2026 年 6 月 10 日推出 gridlanes.webkit.org,是一份專門介紹 CSS Grid Lanes 的互動式學習指南,由 Jen Simmons 撰寫。CSS Grid Lanes 是 CSS Grid 的延伸規格,原生支援瀑布流(masonry)排版,目前已在 Safari 26.4+ 正式啟用;Chrome 140–152 與 Firefox 77–154 需手動開啟旗標,全球瀏覽器支援率約 6.77%(caniuse.com)。

核心改動

與傳統 CSS Grid 相比,Grid Lanes 最大的差異在於項目不需要明確指定位置——系統會自動將元素放入空間最多的欄位,形成類似磚牆的自然堆疊效果。啟用方式只需一個新的 display 值:

display: grid-lanes;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
flow-tolerance: 1;

核心屬性沿用 CSS Grid 語法,但語意略有調整:

  • grid-template-columns:定義垂直欄位(瀑布流方向)
  • grid-template-rows:定義水平列(橫向磚牆方向)
  • flow-tolerance:控制欄位平衡靈敏度
  • grid-column: span N:讓項目跨欄顯示

規格細節

指南網站提供六個互動示範(Photos、Recipes、Newspaper、Mega Menu、Timeline、Pinboard),並整合 Safari Web Inspector 的 Grid Lanes 偵錯視覺化工具。軌道尺寸支援 frminmax()auto-fitauto-fill 及內容關鍵字(min-contentmax-content),彈性與傳統 Grid 相當。指南亦提供完整的單頁屬性參考表與漸進增強(progressive enhancement)策略,讓開發者可先以傳統 Grid 作為後備方案。

影響範圍

長期以來,瀑布流效果需要仰賴 Masonry.js 等 JavaScript 函式庫實現。CSS Grid Lanes 的出現意味著這類排版將可純以 CSS 完成,不僅減少 JavaScript 依賴,也提升首次渲染效能。Safari 作為第一個完整實作的瀏覽器,搭配此學習指南的推出,預期將加速其他引擎的跟進實作。

原始來源:WebKit Blog — Introducing the Field Guide to Grid Lanes


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