Go 中的 Starlark:Starlark 配置语言,以 Go 实现
这里是 Go 中的 Starlark 项目的家园。
Go 中的 Starlark 是一个用 Go 实现的 Starlark 解释器。
Starlark 以前被称为 Skylark。
Go 包的导入路径为 "go.starlark.net/starlark"。
Starlark 是 Python 的一种方言,旨在用作配置语言。 与Python类似,它是一种无类型的动态语言,具有高级数据特性。 类型、具有词法作用域的一等函数以及垃圾回收。 Unlike CPython, independent Starlark threads execute in parallel, so Starlark 工作负载在并行机器上具有良好的扩展性。 Starlark 是一种小巧且简单的语言,具有熟悉且高度 可读的语法。你可以将其用作一种富有表现力的记法。 结构化数据,定义函数以消除重复,或者你 可以用它为现有应用程序添加脚本功能。
Starlark 解释器通常嵌入在更大的应用程序中,而该应用程序可以定义超出核心语言提供的领域特定函数和数据类型。例如,Starlark 最初是为 Bazel 构建工具 开发的。Bazel 将 Starlark 用作其 BUILD 文件(类似于 Makefile,这些文件声明了目录中的可执行文件、库和测试)以及其宏语言的表示法,通过宏语言,Bazel 可以用自定义逻辑进行扩展,以支持新的语言和编译器。
语言定义:doc/spec.md
关于 Go 实现:doc/impl.md
邮件列表:starlark-go
构建代码:
# check out the code and dependencies,
# and install interpreter in $GOPATH/bin
$ go install go.starlark.net/cmd/starlark@latest运行解释器:
$ cat coins.star
coins = {
'dime': 10,
'nickel': 5,
'penny': 1,
'quarter'暂无开放 Issues,或尚未同步最近议题。