Home
Softono

Pain

Open source Python
42
Stars
4
Forks
1
Issues
2
Watchers
3 months
Last Commit

 About Pain

A simple and modern project and package manager for C++ (like pip but for C++)

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Pain?

We provide expert installation service for this software. Our team will install, configure, and secure Pain on your server. plans start at just $30.

PAIN Logo

$$\color{yellow}{\large \textsf{Because setting up C++ projects shouldn’t hurt this much!}}$$


Install · Commands · Architecture


PAIN — project manager for C++

PAIN is a zero-configuration C++ project manager designed to simplify modern C++ development. It combines instant project scaffolding with seamless dependency management, powered by vcpkg and modern CMake.

With PAIN, you can create clean C++20 projects, add libraries, and build your code in seconds — without dealing with complex setup or manual configuration.

  • pain init my_app -> scafolds a project
  • pain add raylib -> links raylib to ur project
  • pain build -> build the project
  • pain run -> run the build

as simple as that!

PAIN handles vcpkg setup, integration, and linking behind the scenes while still generating clean, portable CMake projects — so you stay in control without the usual friction.

No more linker errors. No more environment issues.

Just focus on writing code.

Because setting up C++ projects shouldn’t hurt this much.

[!CAUTION] Built because C++ package management was still stuck in the stone age.

Installation

Windows

Download the pre-compiled pain.exe from the latest release and add it to your system PATH.

Linux & macOS (Build from Source)

You can compile it into a native binary for your system using PyInstaller.

  1. Install PyInstaller:

    pip install pyinstaller
    
  2. Compile to a single executable:

    # Navigate to the repo root
    pyinstaller --onefile pain.py
    
  3. Move the binary to your PATH:

    # Move the resulting binary from the 'dist' folder
    sudo mv dist/pain /usr/local/bin/
    

Quick Start

Once installed, you can manage your C++ projects with ease:

# Initialize a new C++ project
pain init my_app
cd my_app

# Add a library
pain add fmt

# Build and run the project
pain build
pain run

Features

  • Transform C++ package management into a single-command experience.
  • Easily manage dependencies with automated vcpkg.json mutation.
  • Blazingly fast global binary caching (compile once, link instantly anywhere).
  • Sane default settings for modern CMake (C++20).
  • Regex-powered Auto-Linker that writes your target_link_libraries for you.

Requirements

  • Git >= 2.19.0
  • CMake >= 3.21
  • A C++ Compiler (GCC, Clang, or MSVC)
  • vcpkg (PAIN will install a copy using git)

Acknowledgement

  • @X3r0Day - reported and helped validate a command injection vulnerability.

License & Attribution

This project is licensed under the GPL-3.0 License.