Skip to content

Commit

Permalink
Remove users.md, it was copied to a separate repository (#289)
Browse files Browse the repository at this point in the history
Motivation:

  This starlark repository is owned by the BazelBuild team, for which the
  maintenance of this file is not a priority. users.md is not really related
  to Bazel, and pull requests tend to be ignored.

  I believe we can easily add maintainers for this file, as it's not critical.
  By contrast, changes to the spec should continue to be restricted.

  I think this can help create more visibility to Starlark users, and it will
  be easier to evolve and expand the content of the document.
  • Loading branch information
laurentlb authored Oct 30, 2024
1 parent 83003ad commit 931e5c8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 67 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ configuration language. It was designed for the [Bazel](https://bazel.build/)
build system, but may be useful for other projects as well. This repository is
where Starlark features are proposed, discussed, and specified. It contains
information about the language, including the [specification](spec.md). There
are [multiple implementations of Starlark](users.md).
are [multiple implementations of Starlark](https://github.com/laurentlb/awesome-starlark).


Starlark is a dialect of [Python](https://www.python.org/). Like Python, it is a
Expand Down Expand Up @@ -121,4 +121,5 @@ evolution of Starlark.

## Implementations, tools, and users

See the [Starlark implementations, tools, and users](users.md) page.
See [Awesome Starlark](https://github.com/laurentlb/awesome-starlark).

68 changes: 3 additions & 65 deletions users.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Starlark implementations, tools, and users
# Starlark implementations

## Implementations

Expand All @@ -11,69 +11,7 @@ aim to remove the differences and provide a
https://github.com/bazelbuild/bazel/tree/master/src/main/java/net/starlark/java
* in Rust: https://github.com/facebookexperimental/starlark-rust

## Tools

* [Buildifier](https://github.com/bazelbuild/buildtools): Code formatter &
linter. It can also apply automated fixes (e.g. remove unused loads).
* [Stardoc](https://skydoc.bazel.build/): Documentation generator.
* [Starlark Playground](https://github.com/qri-io/starpg): 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](https://github.com/obazl/moonlark): Starlark parser in C with Lua
bindings.
This page used to include a list of users and tools. This has been moved to:
[https://github.com/laurentlb/awesome-starlark](https://github.com/laurentlb/awesome-starlark).

## Libraries and extensions

* [Skycfg](https://github.com/stripe/skycfg) is a library for Starlark to
generate Protocol Buffer messages.
* [starlark-go-nethttp](https://github.com/pcj/starlark-go-nethttp) is a wrapper
around a minimal subset of `net/http package` for use within starlark-go.
* [Starlet](https://github.com/1set/starlet) is a Go wrapper for the [Starlark in Go](https://github.com/google/starlark-go) that
simplifies script execution, provides data conversion, and offers useful Starlark libraries and extensions.
* [Starlight](https://github.com/starlight-go/starlight) is a wrapper around the
Starlark interpreter in Go.

## IDEs

Some IDEs have a [plugin for Bazel](https://bazel.build/install/ide).
Otherwise, consider using a Python mode.

## Users

* [Bazel](https://github.com/bazelbuild/bazel) is a fast, scalable,
multi-language and extensible build system. Starlark has been designed for
Bazel.
* [Buck2](https://buck2.build/) is a build system from Meta, using
Starlark in a similar way as Bazel.
* [Caddy](https://caddyserver.com/) is a fast, cross-platform HTTP/2 web
server with automatic HTTPS.
[Starlark is used](https://github.com/caddyserver/caddy/tree/v2#json-is-declarative-what-if-i-need-more-programmability-ie-imperative-syntax)
in Caddy 2 to extend the JSON configuration and add some logic.
* [Copybara](https://github.com/google/copybara) is a tool for transforming and
moving code between repositories. It embeds Starlark to configure the workflow.
* [Delve](https://github.com/go-delve/delve) is a debugger for the Go
programming language, aiming to provide a simple, full featured debugging
tool for Go. [Delve uses Starlark](https://github.com/go-delve/delve/blob/master/Documentation/cli/starlark.md)
as a a scripting language.
* [Drone](https://drone.io) is a self-service Continuous Delivery platform. It
supports [Starlark scripting](https://docs.drone.io/starlark/overview/) as an
alternate to yaml configurations.
* [Isopod](https://github.com/cruise-automation/isopod) created by Cruise
Automation is a DSL framework for Kubernetes configuration. It renders
Kubernetes objects as Protocol Buffers.
* [lucicfg](https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/master/lucicfg/doc/README.md)
from Chromium CI is a tool for generating low-level configuration files from Starlark.
* [Pixlet](https://github.com/tidbyt/pixlet) is a runtime and UX toolkit for generating animations for small LED displays, such as [Tidbyt](https://tidbyt.com/). Starlark is used to write applets whose outputs are WebP animations.
* [qri](http://qri.io/) is versioned, scriptable, exportable,
collaborative datasets. It uses Starlark to [describe transformations](https://qri.io/docs/reference/starlark_syntax/).
* [Tilt](https://tilt.dev/) manages local development instances for teams that
deploy to Kubernetes. [Tilt files](https://docs.tilt.dev/tiltfile_concepts.html)
are written in Starlark.
* [Vela](https://go-vela.github.io/docs/) is a continuous integration and delivery platform.
It supports [Starlark scripting](https://go-vela.github.io/docs/templates/tutorials/starlark/)
as an alternative to YAML.
* [ytt](https://get-ytt.io/) 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](
https://developer.ibm.com/blogs/yaml-templating-tool-to-simplify-complex-configuration-management/)
about it.

0 comments on commit 931e5c8

Please sign in to comment.