YAEGI, Yet Another Elegant Go Interpreter
summary
A production-focused Go interpreter that runs as an embeddable module with the API interp.New()/i.Eval() and optional exposure of compiled packages via i.Use(stdlib). Claims: fully interoperable with the Go runtime, no default use of unsafe, targets Go 1.12–1.13, open source Apache‑2. Status: alpha, less than 8K LOC, zero external dependencies, backed by Containo.us and used as a plugin engine for traefik. Measured example shows 5–10% overhead vs compiled gzip, concurrency and symbol calls work.
AI-written summary · about
chapters (14)
- 0:00Introduction to YAEGI
- 2:41Motivation and goals
- 5:16Key features and design
- 7:48Architecture overview
- 11:07Simple Hello World example
- 12:46Persistent interpreter state
- 14:02Concurrent code example
- 15:51Dynamic code execution
- 19:02Importing binary packages
- 21:15Self-interpretation demo
- 23:17Interpreter context details
- 24:45Plugin engine use case
- 27:20Secret AST and CFG features
- 33:08Q&A session
related talks
07mYet Another Elegant Go Interpreter
39mIs Go A Good Language to Build Compilers?
32mBuilding a Beginner's Programming Language with Go
32mEat Your Greens (EYG) a predictable, & useful, programming language
07mEYG a predictable, and useful, programming language
22mDynamic Go Instrumentation for Production Environments
59mUnleashing the Go Toolchain
16mTools for working with Go Code
