mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 13:38:30 +00:00
Rewrite project from Python to Rust and add Windows/MacOS supports
This commit is contained in:
92
README.md
92
README.md
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user