Tengo is a small, dynamic, fast, secure script language for Go.
Tengo solves the problem of embedding a scripting capability into Go applications without external dependencies or cgo bindings. It compiles source code to bytecode and executes it on a stack-based virtual machine written in native Go. This approach delivers performance competitive with other embedded language options while maintaining a simple, readable syntax that supports dynamic typing, higher-order functions, closures, and immutable values.
Tengo suits projects that need a rules engine, state machine, data pipeline, or transpiler within a Go application. It can be embedded securely into Go programs through its interoperability layer or run as a standalone language with a REPL. The tool is particularly valuable when performance matters and external dependencies must be avoided, since it has no external dependencies and requires no cgo compilation.
The project maintains active development with regular commits addressing bug fixes and feature improvements. The codebase shows consistent attention to code quality and documentation, with comprehensive guides covering syntax, interoperability, and object extension. Community engagement appears steady through issue responses and pull request reviews.