https://github.com/tuist/fabrik
The Kubernetes of development environments
https://github.com/tuist/fabrik
bazel build-cache caching cargo compiler-cache gradle infrastructure rust sccache
Last synced: about 1 month ago
JSON representation
The Kubernetes of development environments
- Host: GitHub
- URL: https://github.com/tuist/fabrik
- Owner: tuist
- License: other
- Created: 2025-10-23T10:25:34.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-04-22T16:01:56.000Z (about 2 months ago)
- Last Synced: 2026-04-22T18:05:24.402Z (about 2 months ago)
- Topics: bazel, build-cache, caching, cargo, compiler-cache, gradle, infrastructure, rust, sccache
- Language: Rust
- Homepage: https://fabrik.tuist.dev
- Size: 2.77 MB
- Stars: 16
- Watchers: 0
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Fabrik
A polyglot, agent-native build system. Bazel's ambitions, none of its mistakes.
> [!WARNING]
> 🚧 **Pre-alpha.** Not yet usable for real builds. The CLI runs and the cache works, but
> there is no language plugin yet (it's the next phase). See the
> [roadmap](docs/roadmap.md) for what lands when.
## What you get
- 🌍 **One build system for the whole polyglot stack.** Rust, Go, C/C++,
TypeScript, Python, Java/Kotlin, Elixir, Swift, Android, iOS.
- ⚡ **Trustworthy, content-addressed caching** that's shareable across
machines via the Bazel REAPI protocol.
- 🎯 **Honest boundaries.** When fidelity has to drop (Gradle, Vite, Mix),
Fabrik says so out loud rather than pretending.
- 🤖 **Agent-native.** The build graph is a typed, queryable data
structure. Humans and AI agents talk to the same gRPC API.
- 📈 **OpenTelemetry-native** with build-specific semantic conventions.
The full picture is in [docs/design.md](docs/design.md).
## Install
The recommended path is [mise](https://mise.jdx.dev) with the GitHub backend:
```sh
mise use --global github:tuist/fabrik@latest
fabrik --version
```
Pin to a specific release if you want reproducibility:
```sh
mise use --global github:tuist/fabrik@0.1.0
```
Or download a prebuilt archive directly from
[releases](https://github.com/tuist/fabrik/releases). Each release ships
binaries for:
- 🐧 Linux x86_64
- 🍎 macOS x86_64 and arm64
- 🪟 Windows x86_64
## Quick taste
```sh
# Run a command through the action cache.
fabrik run -e PATH=/usr/bin:/bin -- /bin/sh -c 'echo hello'
# A second identical invocation replays the cached stdout/stderr/exit
# without re-running the command.
fabrik run -e PATH=/usr/bin:/bin -- /bin/sh -c 'echo hello'
# Cache stats.
fabrik cache stats
```
The cache lives under `/.fabrik/`. Use `-C ` to point at
a different workspace, the same way `make -C` works.
## Contributing
Phase 0 (walking skeleton: CAS, action executor, CLI) shipped in 0.1.0.
The next phase brings the Rust language plugin so Fabrik can build
itself. Track progress in the [roadmap](docs/roadmap.md).
To build from source:
```sh
mise install
cargo build --release
cargo test
mise exec -- shellspec
```
CI runs lint, tests, and a Windows compile check on every PR. See
[.github/workflows/ci.yml](.github/workflows/ci.yml) and
[CONTRIBUTING](docs/contributing.md) (coming soon).
## License
[MIT](LICENSE).