Yaegi  - Go 语言解释器
小码哥 2019-08-17 14:45:41

Yaegi 是一个优雅的 Go 语言解释器,可以执行 Go 脚本和插件。

特性

  • 完整支持 Go 语言规范
  • 用 Go 编写,只使用标准库
  • 简单的解释器 API: New()Eval()Use()
  • 只要能运行 Go 的地方就可以运行 Yaegi
  • 所有 Go & 运行时资源都可以在脚本中访问
  • 安全: 默认不使用和输出 unsafe 和 syscall 包
  • 支持 Go 1.11 和 Go 1.12 

示例代码:

package main

import (
	"github.com/containous/yaegi/interp"
	"github.com/containous/yaegi/stdlib"
)

func main() {
	i := interp.New(interp.Options{})

	i.Use(stdlib.Symbols)

	_, err := i.Eval(`import "fmt"`)
	if err != nil {
		panic(err)
	}

	_, err = i.Eval(`fmt.Println("Hello Yaegi")`)
	if err != nil {
		panic(err)
	}
}

 

大猫猫 2019-08-17 17:11:07 回复

这个项目有啥用呢?