Yaegi - Go 语言解释器


Apache
跨平台
Google Go

软件简介

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

特性

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