Why This Project Exists

This project addresses the complexity and fragmentation of dependency management in C and C++. Existing solutions often require steep learning curves, complex build system integrations, or proprietary registries, and this project was created to provide a streamlined, Git-centric experience similar to modern package managers like npm or cargo.

Key Features

  • Zero-Config Scaffolding: Instant project creation with crew create.
  • Git-Native Dependencies: Install any library directly via URL, branch, or tag.
  • Automated Include Flags: Easily generate -I paths for your compiler.
  • Built-in Script Runner: Automate build and run tasks via crew.json.

Architecture Overview

Crew follows a modular CLI architecture designed for speed and simplicity. The main components include:

  • CLI Entry (crew.py): Parses user commands and routes them to the appropriate logic.
  • Engine (crew_utils.py): Handles the heavy lifting of dependency resolution, Git operations, and manifest management.
  • Storage (crew_modules/): A local workspace where all project dependencies are housed and versioned.

Data flows from remote Git repositories via git clone into local subdirectories. The system maintains project state in crew.json, allowing it to be highly portable and easy to version control.

Technology Stack

Language Python 3
Version Control Git
Distribution PyPI (crew-cli)
License GPL-3.0
OS Support Linux, macOS, Windows

Installation / Setup

Prerequisites

  • Python 3.6 or higher
  • Git installed and accessible in the system path
  • Internet connection (for library fetching)

Steps

  1. Scaffold your first project:

    crew create my-app --template cpp
    cd my-app
  2. Install a library (e.g., nlohmann/json):

    crew install https://github.com/nlohmann/json.git
  3. Add the include flags to your build command:

    g++ main.cpp $(crew flags) -o app
  4. Run your application using the build script:

    crew run build && crew run start

Usage

Crew is designed to bring developer happiness to C++. To get started:

  1. Run pip install crew-cli to get the tool globally.
  2. Use crew init to add Crew to an existing project.
  3. Use crew install url@tag to pin dependencies to specific versions.

For automated builds, you can use crew run to execute scripts defined in your manifest. The system supports modern Git workflows, allowing users to manage dependencies without a central server.

Project Structure

crewPM/
├── crew.py # CLI entry point
├── crew_utils.py # Core logic & git handling
├── crew.json # Project manifest
├── crew_modules/ # Dependency storage folder
├── docs/ # Documentation & Website
└── LICENSE # GPL-3.0 License file

Roadmap

Git-based dependency management
Centralized Package Registry API
Binary Caching for faster installs
CMake Integration Plugin

Security

Please report vulnerabilities to the 127 CREW maintainers via our GitHub repository.

License

Licensed under the GNU General Public License v3.0 (GPL-3.0).

Maintainers

Maintained by 127 CREW.