Skip to content

Latest commit

 

History

History
79 lines (68 loc) · 4.51 KB

users.md

File metadata and controls

79 lines (68 loc) · 4.51 KB

Starlark implementations, tools, and users

Implementations

The implementations below are not fully compliant to the specification yet. We aim to remove the differences and provide a common test suite.

Tools

  • Buildifier: Code formatter & linter. It can also apply automated fixes (e.g. remove unused loads).
  • Stardoc: Documentation generator.
  • Starlark Playground: Starlark Playground is a web-based starlark editor. It uses the golang implementation of starlark running on a server to present a monaco editor set to python syntax.
  • Moonlark: Starlark parser in C with Lua bindings.

Libraries and extensions

  • Skycfg is a library for Starlark to generate Protocol Buffer messages.
  • starlark-go-nethttp is a wrapper around a minimal subset of net/http package for use within starlark-go.
  • Starlet is a Go wrapper for the Starlark in Go that simplifies script execution, provides data conversion, and offers useful Starlark libraries and extensions.
  • Starlight is a wrapper around the Starlark interpreter in Go.

IDEs

Some IDEs have a plugin for Bazel. Otherwise, consider using a Python mode.

Users

  • Bazel is a fast, scalable, multi-language and extensible build system. Starlark has been designed for Bazel.
  • Buck2 is a build system from Meta, using Starlark in a similar way as Bazel.
  • Caddy is a fast, cross-platform HTTP/2 web server with automatic HTTPS. Starlark is used in Caddy 2 to extend the JSON configuration and add some logic.
  • Copybara is a tool for transforming and moving code between repositories. It embeds Starlark to configure the workflow.
  • Delve is a debugger for the Go programming language, aiming to provide a simple, full featured debugging tool for Go. Delve uses Starlark as a a scripting language.
  • Drone is a self-service Continuous Delivery platform. It supports Starlark scripting as an alternate to yaml configurations.
  • Isopod created by Cruise Automation is a DSL framework for Kubernetes configuration. It renders Kubernetes objects as Protocol Buffers.
  • lucicfg from Chromium CI is a tool for generating low-level configuration files from Starlark.
  • Pixlet is a runtime and UX toolkit for generating animations for small LED displays, such as Tidbyt. Starlark is used to write applets whose outputs are WebP animations.
  • qri is versioned, scriptable, exportable, collaborative datasets. It uses Starlark to describe transformations.
  • Tilt manages local development instances for teams that deploy to Kubernetes. Tilt files are written in Starlark.
  • Vela is a continuous integration and delivery platform. It supports Starlark scripting as an alternative to YAML.
  • ytt is a templating tool, built on top of Starlark, that understands YAML structure allowing you to focus on your data instead of how to properly escape it. Read also IBM's blog post about it.