# google/wireit

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/google-wireit).**

6,409 stars · 121 forks · TypeScript · Apache-2.0

## Links

- GitHub: https://github.com/google/wireit
- awesome-repositories: https://awesome-repositories.com/repository/google-wireit.md

## Description

Wireit is a build system orchestrator and npm script task runner that manages complex dependencies between scripts. It functions as a development workflow automator by tracking input files and dependencies to skip redundant executions and optimize total build time.

The project features a content-addressable build cache that saves generated files to bypass expensive computations. It includes a file watcher that monitors project changes and automatically triggers only the affected scripts within a dependency graph.

The tool covers task orchestration through parallel script execution, background process management, and dependency mapping. It also provides build management utilities for artifact cleanup and resource-constrained execution to prevent system exhaustion.

The project provides IDE integration for configuration assistance, including autocompletion and script format conversion.

## Tags

### Part of an Awesome List

- [Development Trigger Automations](https://awesome-repositories.com/f/awesome-lists/devtools/file-system-monitoring/development-trigger-automations.md) — Automates development workflows by watching file changes and lock files to trigger only necessary scripts.

### Development Tools & Productivity

- [Build Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/cross-platform-orchestrators/multi-target-build-orchestrators/build-orchestrators.md) — Functions as a build orchestrator that tracks input files and dependencies to optimize total build time.
- [NPM Script Runners](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/task-runners/npm-script-runners.md) — Provides a system for defining and executing scripts defined in package configuration files with strict dependency management.
- [Parallel Task Execution](https://awesome-repositories.com/f/development-tools-productivity/parallel-task-execution.md) — Executes independent scripts simultaneously based on system capacity and dependency graphs to reduce processing time. ([source](https://github.com/google/wireit/blob/main/README.md))
- [Script Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/script-dependency-managers.md) — Establishes strict execution sequences to ensure all necessary prerequisites run before dependent tasks start. ([source](https://github.com/google/wireit/blob/main/README.md))
- [Task Dependency Management](https://awesome-repositories.com/f/development-tools-productivity/task-dependency-management.md) — Allows defining scripts as prerequisites for other tasks to establish a strict execution order. ([source](https://github.com/google/wireit/blob/main/CHANGELOG.md))
- [Content-Addressable Caches](https://awesome-repositories.com/f/development-tools-productivity/task-runners/content-addressable-caches.md) — Implements a content-addressable cache that uses input hashing to skip redundant build computations.
- [Background Service Management](https://awesome-repositories.com/f/development-tools-productivity/background-service-management.md) — Orchestrates persistent background processes that start and stop automatically with their dependent build tasks.
- [Frontend Build Tools](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/frontend-build-tools.md) — Manages output artifacts and caching for web-based assets to avoid redundant computations during development.
- [Dependency Cascade Controls](https://awesome-repositories.com/f/development-tools-productivity/dependency-cascade-controls.md) — Prevents dependent tasks from triggering if a prerequisite script completes without producing new output files.
- [Environment Variable Management](https://awesome-repositories.com/f/development-tools-productivity/environment-variable-management.md) — Manages environment variables to influence script fingerprints and control caching behavior. ([source](https://github.com/google/wireit/blob/main/CHANGELOG.md))
- [Resource-Aware Parallelization](https://awesome-repositories.com/f/development-tools-productivity/parallel-execution/custom-parallel-task-execution/resource-aware-parallelization.md) — Limits simultaneous process spawns based on available CPU cores to prevent system resource exhaustion.

### Data & Databases

- [Cache Input and Output Specifications](https://awesome-repositories.com/f/data-databases/performance-caching-systems/cache-input-and-output-specifications.md) — Uses rules to determine result validity based on file and environment state, restoring output files from previous runs. ([source](https://github.com/google/wireit/blob/main/README.md))

### DevOps & Infrastructure

- [Build Pipeline Optimization](https://awesome-repositories.com/f/devops-infrastructure/build-pipeline-optimization.md) — Reduces build times by skipping unchanged tasks and running independent scripts in parallel using a dependency graph.
- [File-Change-Triggered Restarts](https://awesome-repositories.com/f/devops-infrastructure/restart-automation/file-change-triggered-restarts.md) — Automatically triggers the execution of affected scripts in the task graph when monitored files are modified. ([source](https://github.com/google/wireit#readme))
- [Input-State Skipping](https://awesome-repositories.com/f/devops-infrastructure/workflow-run-management/stateful-run-resumption/input-state-skipping.md) — Skips running a script if its input files and configuration match the state of the last successful run. ([source](https://github.com/google/wireit#readme))
- [Dependency Lock Files](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/dependency-lock-files.md) — Monitors package manager lock files to trigger script re-runs when project dependencies are updated. ([source](https://github.com/google/wireit/blob/main/README.md))

### Operating Systems & Systems Programming

- [Hash-Based Change Detection](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-systems/file-change-detection/hash-based-change-detection.md) — Uses cryptographic hashes of input files and environment variables to detect changes and determine if tasks need re-execution.

### Software Engineering & Architecture

- [Directed Acyclic Graph Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/parallel-processing-pipelines/directed-acyclic-graph-pipelines.md) — Orchestrates script execution by building a directed acyclic graph to manage dependencies and maximize parallelism.
- [Failure Handling Policies](https://awesome-repositories.com/f/software-engineering-architecture/failure-handling-policies.md) — Controls whether to terminate the entire process or continue execution when a script returns a non-zero exit code. ([source](https://github.com/google/wireit/blob/main/CHANGELOG.md))
- [Output-Based Execution Controls](https://awesome-repositories.com/f/software-engineering-architecture/output-based-execution-controls.md) — Prevents dependent tasks from triggering if a prerequisite script completes without producing new output files. ([source](https://github.com/google/wireit/blob/main/CHANGELOG.md))

### System Administration & Monitoring

- [File System Monitors](https://awesome-repositories.com/f/system-administration-monitoring/file-system-monitors.md) — Monitors the filesystem for changes to automatically trigger the re-execution of affected tasks in the dependency graph.
- [Background Process Orchestration](https://awesome-repositories.com/f/system-administration-monitoring/background-process-orchestration.md) — Manages persistent background scripts as services that remain active throughout the build process. ([source](https://github.com/google/wireit#readme))
- [Concurrency Limiters](https://awesome-repositories.com/f/system-administration-monitoring/resource-usage-limiters/concurrency-limiters.md) — Caps the number of simultaneous scripts based on available CPU cores to prevent system resource exhaustion. ([source](https://github.com/google/wireit/blob/main/CHANGELOG.md))
