A modern dev shell and build system for C/C++ projects
Project description
InsurgeNT ⚙️✨
Integrated Native Toolkit (InsurgeNT) – a beautiful, modern devshell + build system for C/C++ projects.
A clean, expressive, and fast workflow for native development.
Simple YAML configs. Stunning output. No boilerplate. No stress.
✨ Features
- ⚡️ Incremental builds with parallel + async compilation
- 📦 project.yaml-based config with automatic source/include detection
- 🧠 Intelligent project layout and dependency tracking
- 💻 Interactive shell with tab completion, history, and file ops
- 🔧 Multi-compiler + cross-platform support (Linux, macOS, Windows)
- 🎨 Beautiful TUI feedback with emoji, colors, and clean symbols
Getting Started
To start using InsurgeNT, run the shell:
python -m insurgent # or python -m int
Build Commands
InsurgeNT now supports parallel builds by default for maximum performance.
# Build all targets in parallel
build
# Build specific target
build myapp
# Build with debug symbols
build --debug mylib
# Build sequentially (non-parallel)
build --sequential
Unit tests (native harness)
Declare an optional unit_tests block in project.yaml (see docs/ProjectYAML.md). InsurgeNT compiles sources listed there into a separate executable and runs it when you execute:
insurgent test
# or: insurgent t
From the interactive shell:
test
Use test --silent / test --no-incremental in the shell, or insurgent test --silent / --no-incremental on the CLI. A non-zero exit code from the test binary is treated as failure.
For project_type: library, the main static library (output) is built first and linked into the test executable by default. Use unit_tests.link_project: false for a self-contained test binary, or unit_tests.libraries to add more archives (paths relative to the project root).
Creating a Project
InsurgeNT uses YAML configuration for project definitions. Here's an example:
project: example
description: An example project
authors: ["John Doe", "Jane Doe"]
license: MIT
version: 0.1.0
language: c++
standard: c++20
compiler: g++
compiler_flags:
- global: "-fPIC"
- common: "-O2 -Wall -Wextra"
- cpp: "-std=c++20"
- ld: "-lstdc++"
project_dirs: ["sources"]
project_type: executable
output: bin/example
# Optional bootstrap step
bootstrap:
- task: prepare
- command: "mkdir -p bin"
Installation
pip install insurgent
Development Setup
For development, InsurgeNT provides setup scripts to create a virtual environment and install dependencies:
On Linux/macOS:
# Setup development environment
./setup.sh
# With additional options
./setup.sh --venv=custom_venv --hooks --lint
On Windows:
# Setup development environment
setup.bat
# With additional options
setup.bat --venv=custom_venv --hooks --lint
Linting
To run linting tools on your code:
On Linux/macOS:
# Check and format code
./lint.sh
# Only check code (for CI)
./lint.sh --check
On Windows:
# Check and format code
lint.bat
# Only check code (for CI)
lint.bat --check
Usage
After installation, you can run the development shell by executing:
python -m insurgent
Available Commands
ls,cd,pwd- File navigationmkdir,touch,rm,cp- File operationsbuild <project> [options]- Build a projecttest [--silent] [--no-incremental]- Build and run the unit test executablehistory- Show command history
Build System
InsurgeNT includes a powerful build system for C/C++ projects with features like:
- Incremental builds
- Dependency tracking
- Multiple compiler support
- Parallel and fully asynchronous compilation for maximum performance
- Cross-platform compatibility
License
InsurgeNT is licensed under the MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file insurgent-0.1.1.tar.gz.
File metadata
- Download URL: insurgent-0.1.1.tar.gz
- Upload date:
- Size: 56.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40eaf961b206bbc74fad1c395d43e85f20c70869385f2442f6b858e1680da9ef
|
|
| MD5 |
e51e33086f8cce5cfa05b57fe8c3bf29
|
|
| BLAKE2b-256 |
1bb1dda86d107ef7e26e7910c80a8890c37c2b61ae58219ec247dea472740701
|
Provenance
The following attestation bundles were made for insurgent-0.1.1.tar.gz:
Publisher:
ci.yml on bumbelbee777/insurgent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
insurgent-0.1.1.tar.gz -
Subject digest:
40eaf961b206bbc74fad1c395d43e85f20c70869385f2442f6b858e1680da9ef - Sigstore transparency entry: 1570319050
- Sigstore integration time:
-
Permalink:
bumbelbee777/insurgent@3a24461b9baef859195133c2b4a7fb8d47c3d193 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bumbelbee777
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@3a24461b9baef859195133c2b4a7fb8d47c3d193 -
Trigger Event:
push
-
Statement type:
File details
Details for the file insurgent-0.1.1-py3-none-any.whl.
File metadata
- Download URL: insurgent-0.1.1-py3-none-any.whl
- Upload date:
- Size: 54.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c48ba3261bf192e4e51e2aa9f7e252024efa0133275fc2809a79173963a5b24a
|
|
| MD5 |
e56d6a9af3c99206ba2b70c43f674d9b
|
|
| BLAKE2b-256 |
d6276c1602964cd998a998efea1e904dabef63b86a6a1924ccc68cb17ffd6348
|
Provenance
The following attestation bundles were made for insurgent-0.1.1-py3-none-any.whl:
Publisher:
ci.yml on bumbelbee777/insurgent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
insurgent-0.1.1-py3-none-any.whl -
Subject digest:
c48ba3261bf192e4e51e2aa9f7e252024efa0133275fc2809a79173963a5b24a - Sigstore transparency entry: 1570319214
- Sigstore integration time:
-
Permalink:
bumbelbee777/insurgent@3a24461b9baef859195133c2b4a7fb8d47c3d193 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bumbelbee777
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@3a24461b9baef859195133c2b4a7fb8d47c3d193 -
Trigger Event:
push
-
Statement type: