繼Python之後,Go也順利在瀏覽器上執行
Anaconda 開發商最近釋出了 PyScript,這是一個可以讓開發者在 HTML 中混寫 Python 程式碼的框架,有人將其稱為 “Python 版 JSP”。事實上,PyScript 底層採用了 WebAssembly, 因為它基於 Pyodide 構建,Pyodide 由編譯成 WebAssembly 的 CPython 3。8 直譯器組成,允許在網頁瀏覽器中執行 Python。
無獨有偶,開發者採用相同的思路讓 Go 也順利在瀏覽器上執行。
https://
goscript。dev
網站支援在瀏覽器端直接執行 Go 程式碼,這是一個 Go playground,底層採用 Goscript,透過 WASM 實現。
Goscript 是 Go 語言規範的非官方實現,用於 Rust 專案的內嵌或封裝,提供了更簡單的方式封裝和呼叫底層的 Rust 程式碼。就像 Lua 之於 Redis/WoW,或者 Python 之於 NumPy。Goscript 包含六個專案:
parser
把原始碼變成 AST,移植自 Go 官方程式碼。
type checker
基於 AST 做型別推倒和型別檢查,也移植自 Go 官方程式碼。
codegen
基於 AST 和型別資訊生成位元組碼。
vm
執行位元組碼。
std
官方庫,移植自 Go 官方庫。
engine
包含官方庫的 native 部分,再加上簡單封裝。
Goscript 實現了 Go 的幾乎所有特性(pre 1。18,因此不包括泛型),並移植了部分官方庫,已透過的相關測試用例檢視
https://
github。com/oxfeeefeee/g
oscript/tree/master/engine/tests
。
Goscript 專案程式碼:
https://
github。com/oxfeeefeee/g
oscript
出品 | OSC開源社群(侵刪)
往期回顧:
一張思維導圖,囊括所有Python基礎,趕快Mark!
無碼爬蟲,真香
深入淺出Redis,這是我見過最詳細易懂的Redis筆記(PDF可下載)
《華為工程師Linux核心筆記》高畫質版。pdf
超全面!800頁MySQL學習筆記,新手看這一篇就夠了
火遍全網!96頁Python自動化辦公筆記!(附網盤連結和提取碼)
585頁Python程式設計快速上手,重實操的經典之作!(附網盤連結和提取碼)