Bob is a build system operating at the speed of light on top of language specific build systems. Designed to reduce the complexity of microservice- and full-stack development it takes care of executing local development environments and allows rebuilding and restarting when necessary. In case of multi-repo setups, bob provides tooling on top of git to manage repository spanning changes all together.
Why another build system?
The complexity of multi-service cloud based applications makes it difficult for developers to build and manipulate them efficently on localhost. Rebuilding takes long and the cognitive overload to know when to build what can be overwhelming.
Until now bazel, pants and nx were the only viable options to use, with the shortcomming of adding another layer of complexity for the build process and a very painful adoption process for existing projects.
Bob takes another approach. By adjusting it's behaviour more like a task runner it's much easier to get started while keeping all benefits of cached builds.
Faster builds due to hashed inputs and a cache for outputs.
Rebuild on change to avoid unnecessary rebuilds.
Built-In Shell allows to define builds with plain sh
Development Environment: Run binarys together with compose files and depend on build tasks.
Terminal UI: Control, inspect and restart a development environment from a TUI.
Mono & Multi-Repo support.
Written in Go with performance & usability in mind.
No Java! No Python! Easy to install, it is just a single binary.