DCR — Dexoron Cargo Realization
A Cargo-style build tool for C/C++ projects
Why DCR?
- No boilerplate — one config file, predictable structure
- Cargo-like workflow —
build,run,clean,test,add,fmt - Cross-compilation — full target triple support with short names
- IDE integration — VS Code, CLion,
compile_commands.jsonout of the box - Dependencies — path, git, and registry-based with lock file
- Man pages —
man dcrand per-command pages (man dcr-build,man dcr-new, etc.)
Installation
| Arch Linux (AUR) |
|
| macOS/Linux(GNU) (Homebrew) |
|
| Nix (flake) |
|
| Cargo (crates.io) |
|
| dcrup (Linux / macOS / BSD / Windows(Bash)) |
|
| dcrup (Windows PowerShell) |
|
| Snap (Linux) |
|
| From source |
|
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.
Repository Mirrors
The primary repository is hosted on GitHub. Source and release mirrors:
| Region | Mirror | Contents |
|---|---|---|
| Worldwide | GitHub | Source code and releases |
| Worldwide | SourceForge | Source code and releases |
| Russia | GitVerse | Source code |
| Russia | SourceCraft | Source code |
Release CDN (used by dcrup):
| Code | Host | Role |
|---|---|---|
cf |
cdn-global.dcr-tool.ru (CloudFlare) | Worldwide CDN |
gh |
GitHub Releases | Primary host |
sf |
SourceForge | Worldwide fallback |
ya |
cdn-ru.dcr-tool.ru (Yandex) | Paid RU fallback for restrictions |
dcrup install defaults to --mirror auto and tries cf → gh → sf → ya. Override with --mirror cf|gh|sf|ya or DCRUP_MIRROR.
VS Code Extension
Install the recommended DCR extension by Dexoron-Labs for VS Code. Do not install Microsoft C/C++ extensions for DCR projects; DCR uses clangd instead. If you need debugging with Microsoft's debugger, use MS C/C++ only for its debugger component.
Recommended companion extensions:
- Even Better TOML
- CodeLLDB, or MS C/C++ for debugger support only
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