slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
Python之后,Go也顺利在浏览器上运行
17611538698
webmaster@21cto.com

Python之后,Go也顺利在浏览器上运行

资讯 0 1474 2022-07-01 10:05:49


导读:最近似乎流行在浏览器上运行后端编程语言。


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 包含以下六个项目:


  • 1) parser 把源代码变成 AST,移植自 Go 官方代码。
  • 2) type checker 基于 AST 做类型推倒和类型检查,也移植自 Go 官方代码。
  • 3) codegen 基于 AST 和类型信息生成字节码。
  • 4) vm 运行字节码。
  • 5) std 官方库,移植自 Go 官方库。
  • 6) engine 包含官方库的 native 部分,再加上简单封装。


Goscript 实现了 Go 语言的几乎所有特性(pre 1.18,因此暂时还不包括泛型),并移植了部分官方库,已通过的相关测试用:

https://github.com/oxfeeefeee/goscript/tree/master/engine/tests


Goscript 项目代码:

https://github.com/oxfeeefeee/goscript


评论