Skip to content

troymoder/bolt

Repository files navigation

Bolt

Warning

Experimental — This project is a work in progress and not ready for production use.

What is Bolt?

Bolt is a new build system written with simplicity and extensibility as core design goals. It uses Starlark as its configuration language and implements the Remote Execution API for distributed builds and caching—the same protocol used by Bazel and Buck2.

Goals

  • Minimal — A small, focused codebase that does one thing well

  • Easy to understand — Clear architecture with no magic; read the source and know how it works

  • Good error messages — Clear and understandable error messages

  • Easy to extend — Write custom rules in Starlark without diving into internals

  • Deterministic — Hermetic builds that produce the same output every time

  • Fast — Aggressive caching and parallelism; only rebuild what changed

  • Compatible — Speak the same remote cache/execution protocol as Bazel and Buck2

Why not Bazel or Buck2?

Bolt is inspired by both Bazel and Buck2, born out of frustrations encountered while working with and contributing to those build systems.

Bazel

Bazel’s internal rules for C/C++ and other languages are powerful, but they often rely on magic internals that aren’t exposed to end users. Writing custom rules that integrate cleanly with the standard library can require deep knowledge of undocumented behaviors and private APIs.

Buck2

Buck2 improves on many of Bazel’s pain points, but it comes with its own challenges. The codebase is massive, and the standard library (prelude) is heavyweight and difficult to extend. Contributing new rules or modifying existing ones requires navigating a complex, tightly-coupled system that wasn’t designed with outside contributors in mind.

Bolt’s approach

Bolt aims to avoid these pitfalls by keeping the core small and the standard library transparent. Rules should be understandable by reading the Starlark—no hidden internals, no special privileges for built-in rules.

Status

🚧 Under active development. Everything is subject to change.

About

build system for me

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages