About Nodus
Nodus is a native project companion for C and C++. Its name is Latin for a knot: a visible connection between independent pieces. Nodus helps a project use dependencies and build tools without taking either one over.
The first backend is CMake, powered by a pinned, vendored copy of CPM.cmake. CPM.cmake handles source acquisition, caching, CMake options, source integration, and native package locks. Nodus provides the friendly CLI, project setup, manifest, diagnostics, and build workflow. Future backends can use the same project model.
Key Features:
- Dependency Management: Seamlessly integrate external libraries using CPM.cmake.
- Build System Integration: Works with CMake to manage your C/C++ projects.
- Project Companion: Assists in managing project dependencies and build tools without taking over.
- Cross-Platform Compatibility: Designed for native C/C++ development.
- User-Friendly CLI: Provides intuitive commands for project setup, building, and testing.
Installation:
Requirements: Go 1.26+, CMake 3.14+, and Git for Git-backed dependencies.
To install, clone the repository and build the executable, or use go install.
Quick Start:
- Create a new project with nodus new hello.
- Add dependencies using nodus add.
- Build, run, and test your project with nodus build, nodus run, and nodus test.
- Initialize Nodus in an existing CMake project with nodus init.
Commands:
- nodus new NAME: Create a managed C or C++ starter project.
- nodus init: Add Nodus’s managed dependency block to a CMake project.
- nodus add/remove: Change dependencies and update CPM.cmake’s package lock.
- nodus install/update: Configure the locked graph or refresh its native lock.
- nodus source, link, unlink: Manage the generated project’s sources and linked CMake targets.
- nodus build, run, test: Friendly CMake and CTest commands.
- nodus inspect SOURCE: Probe a package through the same CMake backend and show discovered targets.
- nodus about: Show Nodus, CPM.cmake, CMake, compiler, and project status.
License:
Nodus is released under the MIT License.