Rewrite project from Python to Rust and add Windows/MacOS supports

This commit is contained in:
2026-02-17 18:15:08 +08:00
parent ff69e50127
commit 211438a4e8
45 changed files with 2828 additions and 726 deletions

View File

@@ -1,8 +1,8 @@
# DCR (Dexoron Cargo Realization)
DCR — это утилита для управления проектами на C. Она задает единый формат проекта, дает команды для создания, сборки и запуска, и использует один конфигурационный файл `dcr.toml`.
DCR — это утилита для управления проектами на C/C++ в стиле Cargo.
Проект находится на стадии MVP. Текущая реализация написана на Python и в будущем будет переписана.
Текущая реализация написана на Rust.
## Зачем DCR
- Единая структура проекта без ручной настройки
@@ -15,25 +15,50 @@ DCR — это утилита для управления проектами н
- Запуск собранного бинарника
- Очистка результатов сборки
- Генерация минимального шаблона C-проекта
- Обновление бинарника через `dcr --update` (GitHub Releases)
## Поддерживаемые платформы
- Linux: `x86_64-unknown-linux-gnu`
- macOS Intel: `x86_64-apple-darwin`
- macOS Apple Silicon: `aarch64-apple-darwin`
- Windows: `x86_64-pc-windows-msvc`
## Установка
### Автоматическая установка(Рекомендуется)
**GNU/Linux**
```sh
curl -L dcr.zov.tatar | bash
```
### Самостоятельная установка
### Из исходников
```sh
git clone https://github.com/dexoron/dcr.git "~/.local/share/dcr"
chmod +x "~/.local/share/dcr/dcr"
ln -sf ~/.local/share/dcr/dcr ~/.local/bin
git clone https://github.com/dexoron/dcr.git
cd dcr
cargo build --release
mkdir -p ~/.local/bin
ln -sf "$PWD/target/release/dcr" ~/.local/bin/dcr
```
### Через install.sh (Linux/macOS)
```sh
curl -fsSL https://raw.githubusercontent.com/dexoron/dcr/master/install.sh | bash
```
### Через install.ps1 (Windows)
```powershell
irm https://raw.githubusercontent.com/dexoron/dcr/master/install.ps1 | iex
```
Оба скрипта при запуске спрашивают:
- скачать готовый бинарник из GitHub Release
- или собрать проект из `git`
Релизные ассеты:
- `dcr-x86_64-unknown-linux-gnu`
- `dcr-x86_64-apple-darwin`
- `dcr-aarch64-apple-darwin`
- `dcr-x86_64-pc-windows-msvc.exe`
## Быстрый старт
Создать новый проект:
`dcr new hello`
@@ -41,7 +66,8 @@ ln -sf ~/.local/share/dcr/dcr ~/.local/bin
`dcr init`
Структура проекта:
```
```txt
hello/
- src/
- - main.c
@@ -49,8 +75,7 @@ hello/
```
Сборка и запуск проекта:
`dcr run` или `dcr run --release` - для сбрки с оптимизацией
`dcr run` или `dcr run --release`
## Команды
@@ -78,10 +103,11 @@ hello/
- `--release` — флаги: `-O3 -DNDEBUG -march=native`
## Конфигурация
Основной файл проекта — `dcr.toml`. Сейчас он создается автоматически и служит точкой входа для будущих настроек.
Основной файл проекта — `dcr.toml`.
Пример `dcr.toml`:
```
```toml
[package]
name = "hello"
version = "0.1.0"
@@ -91,34 +117,12 @@ compiler = "clang"
[dependencies]
```
## Установка в PATH
Чтобы вызывать `dcr` из любой директории, можно сделать symlink в `~/.local/bin`:
```sh
ln -s "$PWD/dcr" ~/.local/bin/dcr
```
Убедитесь, что `~/.local/bin` находится в `PATH`.
## Пример проекта
`src/main.c` содержит минимальный `Hello, World!`:
```c
#include <stdio.h>
int main(void) {
puts("Hello, World!");
return 0;
}
```
## Требования
- C-компилятор (например, `gcc` или `clang`)
- Python 3.14.2 (для текущей версии DCR)
- uv (менеджер проекта для Python)
- Rust toolchain (`rustc`, `cargo`) - Для ручной сборки DCR
- C-компилятор (`clang`, `gcc` или другие)
## Статус и планы
Проект в стадии MVP. Планируется переписывание на более подходящий язык и расширение функциональности:
- более гибкая конфигурация через `dcr.toml`
- расширяемые профили сборки
- менеджер пакетов
## Релизы
Релизы собираются автоматически через GitHub Actions (`.github/workflows/release.yml`) при пуше тега формата `v*`.
## Лицензия
См. файл `LICENSE`.