Skip to content

dexoron/dcr

Repository files navigation

DCR — Dexoron Cargo Realization

A Cargo-style build tool for C/C++ projects

CI GitHub Release Platform
AUR Crates.io Homebrew
GitHub Stars License: GPL-3.0


Why DCR?

  • No boilerplate — one config file, predictable structure
  • Cargo-like workflowbuild, run, clean, test, add, fmt
  • Cross-compilation — full target triple support with short names
  • IDE integration — VS Code, CLion, compile_commands.json out of the box
  • Dependencies — path, git, and registry-based with lock file
  • Man pagesman dcr and per-command pages (man dcr-build, man dcr-new, etc.)

Installation

Linux (Dexoron Packages)

See https://pkg.dexoron.su for settings youre packages manager

Arch Linux:

sudo pacman -Sy dcr

Debian/Ubuntu:

sudo apt update && sudo apt install dcr

Fedora/RHEL:

sudo dnf install dcr
Arch Linux (AUR)
yay -S dcr
macOS/Linux(GNU) (Homebrew)
brew tap dexoron/dexoron
brew install dcr
Nix (flake)
nix run github:dexoron/dcr
# or install to profile:
nix profile install github:dexoron/dcr
Cargo (crates.io)
cargo install dcr
Linux / macOS (script)
curl -fsSL https://dcr.dexoron.su/install.sh | sh
BSD (script)
curl -fsSL https://dcr.dexoron.su/install_bsd.sh | sh
Snap (Linux)

Snap Store publishing temporarily disabled — see #51671. Download the .snap from GitHub Releases and install manually:

sudo snap install --classic --dangerous dcrup_*.snap
Windows (PowerShell)
irm https://dcr.dexoron.su/install.ps1 | iex
From source
git clone https://github.com/dexoron/dcr.git
cd dcr && cargo build --release
ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr

Quick Start

dcr new hello
cd hello
dcr run

Project structure:

hello/
├── dcr.toml       # project config
└── src/
    └── main.c

dcr.toml Example

[package]
name = "hello"
version = "0.1.0"

[build]
language = "c"
standard = "c11"
compiler = "clang"
kind = "bin"

[dependencies]

Base Commands

Command Description
dcr new <name> Create a new project
dcr init Initialize current directory
dcr add <dep> Add a dependency
dcr build [--release] Build the project
dcr run [--release] Build and run
dcr clean Remove build artifacts
dcr test Run project tests
dcr fmt Format C/C++ sources (clang-format)
dcr tree View dependency tree
dcr gen <vscode|clion|compile-commands> Generate IDE integration
dcr setup Initialize DCR registry

other in docs/, dcr --help and dcr <command> --help


Platforms (pre-built binary)

OS x86_64 aarch64 armv7 i686 riscv64
Linux (GNU)
Linux (Musl) 🚧
macOS
Windows (MSVC)
Windows (MinGW) 🚧
FreeBSD 🚧
OpenBSD 🚧
NetBSD 🚧

✅ pre-built binary · 🚧 planned · ❌ not supported by platform or CI


Documentation

Full docs at dcr.dexoron.su or in the docs/ directory.


Contributors

Name Role GitHub
👤 Dexoron (Bezotechestvo Vladimir) Maintainer, Creator @dexoron
👤 Kai Maintainer @peoplemiau1

Contributing

See CONTRIBUTING.md. Before a PR:

cargo fmt --all
cargo clippy --all-targets --all-features -- -D warnings
cargo test

GPL-3.0 — see LICENSE
DCR is a build tool, not a library. The GPL applies only to DCR's own source code, not to projects built with it.
Made with ❤️ by Dexoron and contributors.