Flint
A minimal, Git-based build tool and package manager for C/C++ projects that replaces CMakeLists-style configuration with a single JSON file.
🔗 Visit FlintDescription
C and C++ have a famously messy relationship with dependencies — there's no single standard way to say 'my project needs library X,' so developers reach for tools like CMake, Meson, Conan, or vcpkg, each with its own learning curve. Flint is a much smaller, newer attempt at solving the same problem: instead of a complex build-configuration language, you describe your project and its dependencies in one plain JSON file, and Flint fetches those dependencies straight from Git and compiles everything for you.
Concretely, Flint uses a 'manifest-first' model: every dependency needs its own composition.json describing its sources and includes, and when you run flint build, Flint clones any missing dependencies into a deps/ folder, aggregates all the source files and include paths from your project and its dependencies, and invokes GCC or Clang to compile the result. The CLI is small and predictable — flint init, flint add <url>, flint build, flint run — and the project enforces a conventional src/, include/, deps/ folder layout rather than letting you configure paths freely. It's written in C itself, currently Linux-only, and explicitly labeled beta: there's no support yet for custom compiler flags, no incremental compilation (every build is a full rebuild), no automatic handling of dependency naming conflicts, and every dependency in the chain must itself ship a composition.json to work with Flint, which limits how much of the existing C/C++ ecosystem it can pull in today.
💬 Our review
The short version: Flint is a promising but very early experiment at making C/C++ dependency management as simple as adding a Git URL to a JSON file, and it's worth watching rather than adopting for anything you need to ship soon.
Compared to CMake, the long-standing default for C/C++ builds, Flint is dramatically simpler to configure but gives up CMake's maturity, cross-platform support (Windows/macOS), and its enormous existing ecosystem of find-package scripts and CI integrations. Compared to package-manager-focused tools like Conan or vcpkg, Flint's Git-native approach avoids needing a package registry, but it also means every dependency must already be 'Flint-shaped' with its own composition.json — most existing C/C++ libraries aren't, which sharply limits what you can pull in out of the box today. The lack of incremental builds is a real practical drawback for any project beyond toy size, since every flint build recompiles everything from scratch. With only a handful of GitHub stars and an explicit beta/Linux-only label, this reads as a solo developer's clean-slate take on the problem rather than a production-ready tool — genuinely interesting design, but not yet a serious CMake or Meson replacement.
💰 Pricing
📊 Global score
🤖 AI-enriched data
Free and open source, hosted on GitHub (no explicit license file found in the repo).
Pros
Single JSON file (composition.json) replaces complex build-system configuration
Git-native dependency management — no separate package registry needed
Simple, predictable CLI (init/add/build/run)
Free and open source
Supports both GCC and Clang
Cons
Beta stage, Linux-only — no Windows or macOS support yet
No incremental compilation — every build recompiles everything
No custom compiler flags support
Every dependency must ship its own composition.json, which most existing C/C++ libraries don't
No dependency naming-conflict resolution
No clear license file found in the repository
