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。
评论