The Blazing Fast, Cache-First Build Orchestration System for Polyglot Monorepos
English | Franรงais | Deutsch | ๆฅๆฌ่ช | ํ๊ตญ์ด | Tiแบฟng Viแปt | ็ฎไฝไธญๆ | ็น้ซไธญๆ
Fish is a high-performance build orchestration engine engineered in Rust 2024. It delivers the speed and simplicity of Turborepo with the polyglot power of Bazel โ without requiring complex configuration languages like Starlark or custom build DSLs.
Fish automatically discovers your toolchains, analyzes source trees to infer cross-language dependency edges, schedules tasks across a lock-free work-stealing pool, and caches every artifact using cryptographically secure BLAKE3 content-addressable storage (CAS) and Zstandard compression.
๐ก Notice: Fish coordinates existing compilers and package managers (Cargo, Go, npm/pnpm, Python, Clang, etc.). It does not replace them. Unrelated to fish-shell โ they share only a name.
| Feature | Description |
|---|---|
| โก Sub-Millisecond Scheduling | Chase-Lev work-stealing queues and critical-path scheduling dispatch tasks in <100ยตs. |
| ๐ 11+ Language Ecosystems | Native backends for Rust, Go, TypeScript/JS, Python, C/C++, Java, .NET, Swift, Dart, Zig, and Docker. |
| ๐ Automatic Dependency Inference | Contract-first cross-language linking: references (like include_str!, JSON imports) automatically wire DAG edges without manual depends_on. |
| ๐พ High-Throughput CAS Cache | Deduplicated BLAKE3 content-addressable storage with tiered L1/L2 caching and ZSTD compression. |
| ๐ก Zero-Config P2P Cache | Share build artifacts peer-to-peer over local Wi-Fi / LAN with teammates โ zero cloud server costs. |
| ๐ก๏ธ Hermetic Isolation | Multi-platform sandboxing: Linux namespaces & Landlock, macOS seatbelt, and Windows security tokens. |
| ๐ Real-Time Interactive UI | Built-in web dashboard (fish ui) featuring an interactive SVG DAG visualizer and telemetry graphs. |
curl -fsSL https://raw.githubusercontent.com/requla11/fish/main/scripts/install.sh | shirm https://raw.githubusercontent.com/requla11/fish/main/scripts/install.ps1 | iex| Platform | Package Manager | Command |
|---|---|---|
| Windows | Scoop | scoop install https://raw.githubusercontent.com/requla11/fish/main/packaging/fish.json |
| Windows | Winget | winget install requla11.fish |
| macOS | Homebrew | brew tap requla11/fish https://github.com/requla11/homebrew-fish && brew install fish |
| Cargo | crates.io / Git | cargo install --git https://github.com/requla11/fish.git fish-cli |
Navigate to any multi-language repository and run:
# Build the entire workspace in parallel with smart caching
fish build
# Run all test suites across every language
fish test
# Watch mode: re-compile and re-test on file changes
fish dev
# Clean build artifacts (or clean everything including local cache with --all)
fish clean --all
# Launch the interactive web dashboard & DAG visualizer
fish ui --openWe include a realistic contract-first monorepo combining Rust + Go + Python + TypeScript:
cd examples/polyglot-demo
fish build
fish graph --format treeOutput:
๐ Inferring cross-language dependencies:
โณ go-service โ py-worker (Go project references `../py-worker/contracts/events.schema.json`)
โณ rust-service โ py-worker (Rust project references `../../py-worker/contracts/events.schema.json`)
โณ web-frontend โ py-worker (TypeScript project references `../../py-worker/contracts/topics.json`)
๐ Linked 6 cross-project task edge(s) from 3 inference(s)
Build completed successfully.
Tasks: 7 total (7 cached, 100% cache hit)
Duration: 0.01s
Fish natively detects and orchestrates projects across 11 major ecosystems:
| Ecosystem | Manifest Detected | Default Tasks |
|---|---|---|
| Rust | Cargo.toml |
cargo check, cargo build, cargo test |
| TypeScript / Node | package.json, tsconfig.json |
typecheck, build, test |
| Go | go.mod |
go vet, go build, go test |
| Python | pyproject.toml, requirements.txt |
syntax compile, pytest, lint |
| C / C++ | CMakeLists.txt, fish.cc.json |
CMake configure, build, ctest |
| Java | pom.xml, build.gradle |
compile, test |
| .NET / C# | *.csproj, *.sln |
dotnet build, dotnet test |
| Swift | Package.swift |
swift build, swift test |
| Dart / Flutter | pubspec.yaml |
dart analyze, dart test |
| Zig | build.zig |
zig build, zig test |
| Docker / OCI | Dockerfile, docker-compose.yml |
Multi-stage image build, OCI compilation |
Fish keeps its CLI clean, intuitive, and developer-friendly:
Build & Test:
fish build Build all targets discovered from the project graph
fish check Type-check and validate targets without linking
fish test Execute all test suites across the workspace
fish run [TARGET] Build and run a specific binary target
fish dev (or watch) Continuously watch files and trigger incremental rebuilds
Inspect & Understand:
fish graph Visualize the DAG as stage trees, DOT, or JSON
fish why <QUERY> Ask in natural language why a target was rebuilt
fish ui Open the real-time web dashboard & interactive DAG visualizer
fish doctor Diagnose installed toolchains, cache integrity, and environment
Maintain & Clean:
fish clean Remove project build targets (pass -a/--all to wipe ~/.fish/cache)
fish fix AI & compiler-grounded error diagnosis and auto-remediation
fish ci init Generate optimized CI/CD workflows (GitHub Actions, GitLab, etc.)
fish affected Build or test only packages affected by git changes
The engine is structured as a modular Rust workspace (28 crates) maintaining strict boundary isolation:
crates/
fish-core/ Workspace discovery, manifest model, and DAG merger
fish-graph/ Dependency graph, topological sort, and query algebra
fish-executor/ Process execution, middleware chain, and response files
fish-scheduler/ Parallel work-stealing scheduler, GNU jobserver pool, racing, and DTE
fish-cache/ Fingerprint cache, two-phase pruning, and morphic hashes
fish-cas/ Content-addressable artifact storage with BLAKE3 + ZSTD compression
fish-incremental/ Change detection, AST inference, and dirty rebuild explainer
fish-backend-*/ 11 language and toolchain adapters implementing EcosystemBackend
fish-worker/ Distributed execution server and streaming VFS protocol
fish-remote-cache/ High-throughput remote cache server with Ed25519 signature gating
fish-security/ Multi-layer security, OSV vulnerability scanner, and SLSA provenance
fish-cli/ Unified command-line application, daemon IPC, and terminal rendering
submodules/ Vendored companion isolation engines:
apple/ Hermetic sandbox and OS process isolation daemon
banana/ P2P swarm mesh, OCI container builder, and Merkle ledger
examples/ Ready-to-run polyglot monorepo demonstrations
Fish follows a strict branch lifecycle:
dev (active development, tests, features)
โ
โ verify: cargo test --workspace & cargo clippy
โ
main (stable, production-ready releases)
devโ All active work, feature branches, and pull requests land here.mainโ Stable tagged releases only.
To verify the codebase locally:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace- Architecture Guide โ In-depth architectural design and components.
- Development Setup โ Local setup, debugging, and benchmarks.
- Roadmap โ Current milestones, completed targets, and future moonshots.
- Contributing Guidelines โ How to propose changes and add backends.
- AI Agent Workflow โ Best practices for AI coding agents.
Fish is licensed under the MIT License.
Disclaimer: This project is an independent build orchestration system. Other unrelated tools, packages, or projects using "fish" in their names (such as
fish-shell,fish-image, etc.) are independent and not affiliated with, sponsored, or endorsed by the Fish build orchestration project.