Show HN: I built a Cargo-like build tool for C/C++

Craft is a lightweight build tool for C and C++ projects that eliminates the friction of CMake and manual dependency management, providing a modern CLI experience similar to Rust's Cargo.
A lightweight build tool for C and C++ projects — think Cargo, but for C/C++.
C and C++ development has always required wrestling with CMake, configuring build systems, and manually managing dependencies. Craft eliminates that friction. You describe your project in a simple craft.toml file and Craft handles the rest by generating CMake configuration, managing dependencies, and providing a clean command-line interface that feels modern and smooth.
- Define your project in
craft.toml - Craft generates
CMakeLists.txt - Dependencies are fetched automatically
- CMake builds your project behind the scenes
# Create a new project
craft project my_app
cd my_app
# Add a dependency
craft add --git https://github.com/raysan5/raylib.git --links raylib
# Build it
craft build
# Run it
craft run
Describe your project in a simple, readable config:
[project]
name = "my_app"
version = "0.1.0"
language = "cpp"
cpp_standard = 17
[build]
type = "executable"
include_dirs = ["include"]
source_dirs = ["src"]
Craft turns this into a working CMakeLists.txt automatically.
Add dependencies to your project with a single command.
craft add --path ../PhysicsEngine # local Craft project
craft add --git https://github.com/raysan5/raylib --tag 5.5 # git dependency
craft remove raylib # remove it just as easily
craft update # update all dependencies
- Git repos are cloned automatically
- CMake wiring is handled for you
Save any project as a reusable template and spin up new projects from it instantly.
craft template save my_game_template
craft project new_game --template my_game_template
Craft also comes with a few built-in templates for executables and libraries.
Requirements: git, cmake
craft.toml is the single source of truth for how your project is built. Craft reads it to generate CMakeLists.txt automatically — you never need to write or edit CMake directly.
Source: Hacker News















