tsoding/nob.h
FreeHeader only library for writing build recipes in C.
About tsoding/nob.h
nob.h is a header-only library that embodies the 'NoBuild' philosophy: building C projects using only a C compiler, without requiring Make, CMake, or other build tools. By embedding a minimal build system in a single header (nob.h), developers simply copy the file into their project, compile a small bootstrap binary with a C compiler, and then use that binary to run builds, tests, and other tasks. The library is designed to be extremely portable across Linux, macOS, Windows, and FreeBSD, and it encourages using the same language for both development and build scripting, enabling code reuse. While tsoding actively uses it in many personal C projects and finds it effective, the project is experimental and likely unsuitable for large projects with complex dependency management.
Key Features
Pros & Cons
- Extremely portable across various operating systems, reducing build environment issues
- Uses the same language (C) for building and developing, enabling code reuse
- Minimal dependencies – only a C compiler needed
- Lightweight and easy to embed: just copy the header file
- Flexible for task automation similar to shell scripts but with C's type safety
- Requires comfort with C programming and implementing build logic manually
- Experimental – not yet proven for all scales of projects
- Unsuitable for projects with complex dependency management (e.g., heavy CMake usage)
- Only practical for C/C++ projects, not other languages
- Limited community and ecosystem compared to established build systems