Goscript:Rust 实现的 Go 语言规范

开发
Anaconda 开发商最近发布了 PyScript,这是一个可以让开发者在 HTML 中混写 Python 代码的框架,有人将其称为 “Python 版 JSP”。

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/goscript/tree/master/engine/tests。

Goscript 项目代码:https://github.com/oxfeeefeee/goscript

本文转自OSCHINA

本文标题:Goscript:Rust 实现的 Go 语言规范

本文地址:https://www.oschina.net/news/194738/goscript-wasm

责任编辑:未丽燕 来源: 开源中国
相关推荐

2020-07-07 07:00:00

RustGo语言编程语言

2015-11-25 10:43:03

DGORust

2024-03-01 20:16:03

GoRust语言

2023-12-15 14:38:00

GoRust编程语言

2022-12-05 09:32:29

Go 语言风格规范

2022-11-28 08:15:14

Go语言代码

2022-09-16 07:40:17

CloudWeGo开源Rust

2014-04-24 10:48:27

Go语言基础实现

2022-10-26 07:26:38

2015-12-21 14:56:12

Go语言Http网络协议

2022-05-19 14:14:26

go语言限流算法

2020-03-17 10:24:12

Go语言停止写障碍

2021-08-14 10:27:01

IP地址漏洞Rust语言

2021-03-23 14:50:16

编程语言Rust漏洞

2021-10-20 10:08:31

编程技能开发

2020-08-12 08:56:30

代码凯撒密码函数

2017-11-16 15:25:54

Go语言算法代码

2022-11-01 18:29:25

Go语言排序算法

2024-02-06 17:57:06

Go语言任务

2023-05-08 07:55:05

快速排序Go 语言
点赞
收藏

51CTO技术栈公众号