4 ms·
What is it? What can I use this for?
by mosselman 7y ago
What is it? What can I use this for?
- klodolph 7y agoIt’s a build system. That might not be very exciting to you, but for large projects and multi-language projects it is usually much better than other build systems. It is designed to help give you fast distributed builds with high shared cache hit rates, reproducible builds, and a lot of tools to analyze dependencies. Personally, I like using it any time a project starts using multiple languages, protobufs, or generated sources.
- paulddraper 7y agoPolyglot build system (a la make), designed by Google for large code bases with: * Assured reproducibility via sandboxing * Distributed caching * Distributed execution (experimental) * Support for long-lived worker processes * Static analysis of build dependencies * Uniform CLI for builds and tests Build definitions and extensions are written in Starlark, a subset of Python. If you work in a large repo, especially one with multiple languages, you should be interested in Bazel. Many of Google's OSS projects now build with Bazel (TensorFlow, K8s, Angular). Buck and Pants are similar tools by Facebook and Twitter respectively, inspired by Bazel's closed source predecessor Blaze.