ashgti / n2

n2 ("into"), a ninja compatible build system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

n2, an alternative ninja implementation

CI status

n2 (pronounced "into") implements enough of ninja to successfully build some projects that build with ninja.

I wrote it to explore some alternative ideas I had around how to structure a build system.

Here's a small demo of n2 building some of Clang.

More reading

Differences from Ninja

n2 is missing many Ninja features.

n2 does some things Ninja doesn't:

  • Builds start tasks as soon as an out of date one is found, rather than gathering all the out of date tasks before executing.
  • Fancier status output, modeled after Bazel.
  • -d trace generates a performance trace as used by Chrome's about:tracing or alternatives (speedscope, perfetto).

About

n2 ("into"), a ninja compatible build system

License:Apache License 2.0


Languages

Language:Rust 96.8%Language:TypeScript 2.6%Language:Python 0.4%Language:Shell 0.1%