Skip to content

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

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
dcrup (Linux / macOS / BSD / Windows(Bash))
curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install
export PATH="$HOME/.dcr/bin:$PATH"
dcrup install stable                 # auto: cf → gh → sf → ya
# dcrup install stable --mirror cf   # CloudFlare CDN
# dcrup install stable --mirror ya   # Yandex CDN (RU)
dcrup (Windows PowerShell)
irm https://ps1.dcr-tool.ru | iex
# or:
# irm https://ps1.dcr-tool.ru -OutFile dcrup.ps1
# powershell -File .\dcrup.ps1 self-install
# $env:Path += ";$env:USERPROFILE\.dcr\bin"
dcrup install stable                 # auto: cf → gh → sf → ya
# dcrup install stable --mirror cf   # CloudFlare CDN
# dcrup install stable --mirror ya   # Yandex CDN (RU)
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
From source
git clone https://github.com/dexoron/dcr.git
cd dcr && cargo build --release --features archive
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.


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:


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.

About

DCR is a utility for managing C/C++ projects in a Cargo-like style.

Topics

Resources

Contributing

Stars

42 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages