An Overview of the Starlark Language

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • toolchains_llvm

    LLVM toolchain for bazel

    The biggest feature I want out of Starlark the language (not Bazel the build system) is to allow optional type annotations. They don’t have to do anything, they don’t have to specified, it just needs to be syntactically valid to put type annotations somewhere. If there were syntax for type annotations that tools like Bazel ignored, it would be possible for some enterprising soul who’s forced to use Bazel at work to throw up an initial prototype of a type checker and a language server for Starlark in Bazel. The language is not that complicated that a type checker couldn’t be written by a hobbiest.

    My biggest frustration when using Bazel is not even Bazel—it’s the fact that when I’m looking at code like this[1], everything comes from a single, unannotated `rctx` variable that has no type annotation. So when I’m trying to read the code, it’s a matter of constantly grepping the repo, grepping the bazel docs, and grepping the bazel source code to get any new code written.

    Why can’t I just hover and see the docs? Why can’t I press `rctx.` and see all the attributes available?

    [1] https://github.com/bazel-contrib/toolchains_llvm/blob/master...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • clace

    Clace is a web app deployment platform for internal tools. Clace builds and runs containers and provides a GitOps workflow. Clace is cross platform across Linux, Windows and OSX.

  • apps

    Clace web applications (by claceio)

    [4] https://github.com/claceio/apps/blob/main/utils/bookmarks/ap...

  • starlark-rust

    A Rust implementation of the Starlark language

    starlark-rust (used by Buck2) supports this! They're immensely useful for grokking complex build code, as you said. https://github.com/facebook/starlark-rust/blob/main/docs/typ...

  • starlark

    Starlark Language

    Having done some nontrivial Bazel/Starlark hacking, I completely agree that lightweight static types would be a good usability improvement. But I want to point out that Starlark is actually not Turing complete, which is imo one of the more interesting characteristics it has. Recursion is forbidden (https://github.com/bazelbuild/starlark/blob/master/spec.md#f...) and loops must be structural; there is no while loop or other unbounded iteration construct. Starlark is one of the more capable and mainstream non-Turing-complete languages out there, and doesn't resemble the other common ones which mostly show up in theorem provers. On the one hand I think the logic in a build system that needs to reason about incremental builds absolutely should be guaranteed to terminate, but in some particularly painful situations I've had to resort to iteration over smart-contract-style "gas" parameters.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • cc toolchain for macOS Monterey / Apple M1

    2 projects | /r/bazel | 1 Dec 2022
  • Cross-compiling to linux on MacOS with cgo

    2 projects | /r/bazel | 9 Apr 2021
  • Show HN: Web app proxy and container manager (Nginx Unit alternative)

    1 project | news.ycombinator.com | 2 Jun 2024
  • ETag and HTTP Caching

    4 projects | news.ycombinator.com | 10 Apr 2024
  • Show HN: Clace – Nginx Unit alternative – app server for internal apps

    2 projects | news.ycombinator.com | 10 Apr 2024

Did you konow that Starlark is
the 67th most popular programming language
based on number of metions?