Skylark, now known as Starlark, is an interpreter for a Python-like language implemented in Go. It is designed as a lightweight, deterministic, and embeddable configuration and scripting language ideal for use within larger applications. Skylark maintains Python’s familiar syntax and high-level data types while omitting features that could cause nondeterminism, such as concurrency and dynamic module imports. The interpreter supports first-class functions, dictionaries, lists, and comprehensions, allowing developers to define reusable logic and structured configuration data. Originally developed for Bazel, Google’s build tool, Skylark enables users to define build rules and macros that extend system functionality. Because it runs deterministically and isolates execution from system state, it’s well-suited for reproducible build systems and other sandboxed environments. The Go implementation focuses on parallel scalability and easy integration into Go-based projects.
Features
- Lightweight, deterministic scripting language based on a subset of Python
- Fully implemented in Go, suitable for embedding into other applications
- Supports first-class functions, lists, dictionaries, and comprehensions
- Thread-safe interpreter enabling parallel execution of independent threads
- Originally used in Bazel for build configuration and rule definition
- Includes REPL mode and straightforward Go API for extensibility and integration