Crates.io | starlark_module |
lib.rs | starlark_module |
version | 0.4.0 |
source | src |
created_at | 2021-04-06 11:28:55.154827 |
updated_at | 2021-04-06 11:28:55.154827 |
description | Derive helpers for the starlark package. |
homepage | |
repository | https://github.com/facebookexperimental/starlark-rust |
max_upload_size | |
id | 379791 |
size | 32,212 |
NOTE: Version 0.4.0 of this library changes maintainer from Google to Facebook.
This project provides a Rust implementation of the Starlark language. Starlark (formerly codenamed Skylark) is a deterministic language inspired by Python3, used for configuration in the build systems Bazel and Buck. This project was originally developed in this repo, which contains a more extensive history.
There are at least three implementations of Starlark, one in Java, one in Go, and this one in Rust. We mostly follow the Starlark standard.
This project features:
Send
/Sync
, while non-frozen values aren't.This project also has three non-goals:
There are three components:
starlark_module
, a proc-macro crate that defines the #[starlark_module]
annotation that can be applied to Rust code to make it available as a Starlark module. This library is a dependency of starlark
the library.starlark
the library, a library that defines the parser, evaluator and standard library. Projects wishing to embed Starlark in their environment (with additional types, library functions and features) will make use of this library.starlark
the binary, which provides interactive evaluation, IDE features and linter, exposed through a command line. Useful if you want to use vanilla Starlark (but if you do, consider Python3 instead) or as a test-bed for experimenting. Most projects will end up implementing some of this functionality themselves over the starlark
library, incorporating their specific extra types etc.In this section we outline where we don't comply with the Starlark spec.
for
.CHANGELOG.md
with the changes since the last release. This link can help (update to compare against the last release).Cargo.toml
files. Bump them by 0.0.1 if there are no incompatible changes, or 0.1.0 if there are. Bump the dependency in starlark
to point at the latest starlark_module
version.CHANGELOG.md
, LICENSE
and README.md
into each starlark
and starlark_module
subdirectory.cargo publish --dry-run --allow-dirty
, then without the --dry-run
, first in starlark_module
and then starlark
directories.v0.X.Y
, using the starlark
version as the name.Starlark Rust is Apache License, Version 2.0 licensed, as found in the LICENSE file.