google/kati
google/kati has 1,027 GitHub stars and 135 forks. Star changes are not measured yet. Last checked 2026-11-09 12:17 UTC. Last push 2026-10-29.
An experimental GNU make clone
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originalkati
kati is an experimental GNU make clone. The main goal of this tool is to speed-up incremental build of Android.
Currently, kati does not offer a faster build by itself. It instead converts your Makefile to a ninja file.
Development
Building:
$ make ckati
The above command produces a ckati binary in the project root.
Testing (best ran in a Ubuntu 22.04 environment):
$ make test
$ go test --ckati
$ go test --ckati --ninja
$ go test --ckati --ninja --all
The above commands run all cKati and Ninja tests in the testcases/ directory.
Alternatively, you can also run the tests in a Docker container in a prepared test enviroment:
$ docker build -t kati-test . && docker run kati-test
If you are working on a machine that does not provide make in the same version
as kati is currently compatible with, you might want to download a prebuilt
version instead. For example to use the prebuilt version of Ubuntu 20.04 LTS:
$ mkdir tmp/ && cd tmp/
$ wget http://mirrors.kernel.org/ubuntu/pool/main/m/make-dfsg/make_4.2.1-1.2_amd64.deb
$ ar xv make_4.2.1-1.2_amd64.deb
$ tar xf data.tar.xz
$ cd ..
$ PATH=$(pwd)/tmp/usr/bin/:$PATH make test
How to use for Android
For Android-N+, ckati and ninja is used automatically. There is a prebuilt checked in under prebuilts/build-tools that is used.
All Android's build commands (m, mmm, mmma, etc.) should just work.
Rust version
There's an experimental rust port in the the src-rs/... directory, though there are no plans for it to replace the C++ version. It should have a very similar feature set to the C++ version, and similar performance (in release mode).
$ cargo build
$ go test --rkati
$ go test --rkati --ninja
$ go test --rkati --ninja --all
The resulting rkati binary in target/*/rkati is a drop-in replacement for
ckati. Setting KATI_LOG=trace at runtime can enable extra debug logging.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,597 starspublic-apis/public-apis
A collective list of free APIs
497,924 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
449,772 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,299 stars