# rninja > rninja is a Rust-powered drop-in replacement for Ninja with built-in caching and modern scheduling. Cut warm incremental build times 2x to 5x without changing your build.ninja, your generator (CMake, GN, Meson), or your CI scripts. rninja parses the same build.ninja format ninja does and mirrors its core flags (-C, -f, -j, -k, -l, -n, -t, -v, -d). It adds a content-addressed action cache backed by sled, a tokio-driven async scheduler, and an optional remote cache built on async-nng. MIT licensed. Published on crates.io, npm, PyPI, and Homebrew. ## Docs - [Home](https://rninja.neullabs.com/): Tagline, install matrix, features, how it works, audience - [About](https://rninja.neullabs.com/about/): Design thesis — keep the format and CLI, close the gaps in the executor - [Blog](https://rninja.neullabs.com/blog/): Build-engineering notes from the team - [Documentation](https://docs.neullabs.com/rninja/): Architecture, performance expectations, drop-in compatibility guide, roadmap ## Compare - [vs ninja](https://rninja.neullabs.com/compare/ninja/): The baseline. Same format and flags; rninja adds the cache, scheduler, and remote sharing - [vs sccache](https://rninja.neullabs.com/compare/sccache/): Different layer of the stack. sccache wraps the compiler; rninja caches whole ninja actions ## Blog posts - [Where ninja leaves perf on the table](https://rninja.neullabs.com/blog/where-ninja-leaves-perf-on-the-table/) - [Drop-in caching that doesn't break determinism](https://rninja.neullabs.com/blog/drop-in-caching-that-doesnt-break-determinism/) - [Profiling build graphs honestly](https://rninja.neullabs.com/blog/profiling-build-graphs-honestly/) ## Optional - [RSS](https://rninja.neullabs.com/rss.xml): Blog feed - [GitHub](https://github.com/neul-labs/rninja): Source, issues, releases