facebook/starlark-rust

A Rust implementation of the Starlark language

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 17 minutes ago
Added to GitGenius on August 8th, 2026
Created on December 7th, 2020
Open Issues & Pull Requests: 39 (+0)
Number of forks: 114
Total Stargazers: 1,004 (+0)
Total Subscribers: 41 (+0)

Issue Activity (beta)

Open issues: 14
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 476 days
Stale 30+ days: 14
Stale 90+ days: 13

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • lsp (3)
  • good first issue (1)
  • spec (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 8.7 hours
Mean response time: 23.6 days
90th percentile: 87.9 days
Tracked items: 30

Most active contributors

Detailed Description

The facebook/starlark-rust repository is the canonical Rust implementation of the Starlark language, a deterministic Python3-inspired configuration language used by major build systems including Bazel, Buck, and Buck2. Originally developed by Damien Martin-Guillerez at Google, the project transitioned to Meta ownership at version 0.4.0. Starlark exists alongside implementations in Java and Go, with this Rust version offering particular advantages for systems requiring memory safety and concurrent execution guarantees.

The project provides comprehensive interoperability between Rust and Starlark, featuring garbage-collected values on managed heaps with Rust-friendly type semantics where frozen values are Send and Sync while non-frozen values maintain interior mutability constraints. The implementation includes optional runtime-checked types, enabling developers to catch type errors during execution. A built-in linter detects code issues in Starlark programs, while IDE integration through Language Server Protocol support allows developers to use standard editors with full language awareness. The project also implements Debug Adapter Protocol support for debugging capabilities.

The codebase is organized into six distinct components serving different use cases. The starlark_derive proc-macro crate provides necessary macros for Starlark integration. The starlark_map library offers memory-efficient ordered and unordered maps, sets, and other data structures optimized for Starlark's needs. The starlark_syntax component exposes the abstract syntax tree and parsing functions for direct AST manipulation. The main starlark library contains the evaluator, standard library, and debugger support, designed for projects embedding Starlark with custom types and functions. The starlark_lsp library provides Language Server Protocol implementation. Finally, starlark_bin offers a command-line binary for interactive evaluation, IDE features, and linting of vanilla Starlark code.

The implementation extends beyond the standard Starlark specification with features including type annotations, recursion support, and top-level for loops. However, it does not yet support later Starlark additions such as bytes types. The project explicitly avoids guaranteeing API stability between releases, prioritizing rapid iteration and API refinement while maintaining semantic versioning compliance. Similarly, the project does not minimize dependencies, instead bundling substantial functionality into a single powerful package, though feature flags may be introduced if specific dependencies prove problematic.

Quality assurance is maintained through extensive testing including fuzz testing coordinated through Google's OSS-Fuzz infrastructure. The project follows a structured release process managed through GitHub Actions, with version bumps determined by compatibility impact. The codebase is licensed under Apache License Version 2.0, making it suitable for both open-source and commercial integration. Most projects embedding Starlark should build custom binaries on top of the starlark and starlark_lsp libraries to incorporate domain-specific types and functions while leveraging the bundled LSP capabilities for IDE integration.

starlark-rust
by
facebookfacebook/starlark-rust

Repository Details

Fetching additional details & charts...