Goscript:Rust 實現的 Go 語言規範
Anaconda 開發商最近釋出了PyScript,這是一個可以讓開發者在 HTML 中混寫 Python 程式碼的框架,有人將其稱為“Python 版 JSP”。事實上,PyScript 底層採用了 WebAssembly, 因為它基於 Pyodide 構建,Pyodide 由編譯成 WebAssembly 的 CPython 3.8 直譯器組成,允許在網頁瀏覽器中執行 Python。
無獨有偶,開發者採用相同的思路讓 Go 也順利在瀏覽器上執行。 http://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,因此不包括泛型),並移植了部分官方庫,已通過的相關測試用例檢視 http://github.com/oxfeeefeee/goscript/tree/master/engine/tests 。
Goscript 專案程式碼: http://github.com/oxfeeefeee/goscript
「其他文章」
- 開源大咖說 - Linus 與 Jim對話中國開源
- 用這些開源工具在 Linux 上編輯 PDF 檔案 | Linux 中國
- RISC OS 誕生 35 週年
- Linus Torvalds與Jim Zimlin歷史性首次對話中國開源
- 我如何利用 Xfce 桌面為舊電腦賦予新生 | Linux 中國
- 為打擊網路虛假圖片,Adobe 推出開源工具包
- 企業為何使用開源軟體,又為何推動開源軟體的發展 | Linux 中國
- 微軟欲閉源 VS Code 的 C# 擴充套件惹眾怒
- 使用 LibreOffice 進行首次開源貢獻的 6 種簡單方法 | Linux 中國
- 官宣!Apache Doris 從 Apache 基金會畢業,正式成為 Apache 頂級專案!
- 敏捷需求管理篇|如何從0-1寫好一個使用者故事
- go-zero微服務實戰系列(四、CRUD熱熱身)
- 平衡 Cookie 取捨,Firefox 預設為所有使用者啟用 Total Cookie Protection
- 分裂使 Linux 超越 Windows 的夢想破滅了 | Linux 中國
- Chrome 瀏覽器將獲得更多本地機器學習功能
- 乘風破浪,探索資料視覺化開發平臺 FlyFish 開源背後的祕密!
- 實至名歸 | OpenSCA成為開源中國GVP-Gitee最有價值開源專案
- 在商業之外,為學生們教授開源知識 | Linux 中國
- 僅有 0.1M 可訓引數,AIOps 日誌異常檢測新正規化
- 開源&跨界 2022年中國城市燃氣行業發展新氣象