https://github.com/dyaa-adel/dym-kit
A principal-grade project generator for C++, Python, Rust, and C#. Enforces Big Tech engineering standards (CI, Tests, Linting) by default.
https://github.com/dyaa-adel/dym-kit
automation cli cpp20 developer-tools project-generator python3 scaffolding template-engine
Last synced: about 2 months ago
JSON representation
A principal-grade project generator for C++, Python, Rust, and C#. Enforces Big Tech engineering standards (CI, Tests, Linting) by default.
- Host: GitHub
- URL: https://github.com/dyaa-adel/dym-kit
- Owner: dyaa-adel
- License: mit
- Created: 2025-12-13T19:56:04.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-12-13T20:28:25.000Z (6 months ago)
- Last Synced: 2025-12-15T15:44:44.877Z (6 months ago)
- Topics: automation, cli, cpp20, developer-tools, project-generator, python3, scaffolding, template-engine
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DYM KIT
[](LICENSE)
[](https://www.python.org/)
[]()
**DYM KIT** is a principal-grade project generator that enforces "Big Tech" engineering standards by default.
It is not just a cookie-cutter; it is a **Repo Factory**. It generates production-ready skeletons for C++, Python, Rust, and C# that include build systems, CI/CD, testing frameworks, and dependency management out of the box.
---
## 🚀 Features
* **Multi-Language Support:** First-class standards for C++20, Python 3.11+, Rust 2021, and C# .NET 8.
* **Rigor Levels:**
* `--level lite`: Minimal boilerplate for prototypes (Build + Run).
* `--level pro`: (Default) Includes CI, Unit Tests, Formatting, and Static Analysis.
* `--level studio`: Strict governance, coverage reports, documentation enforcement, and release workflows.
* **Zero-Config Build:** Every generated repo builds with 1–3 standard commands.
* **Professional Hygiene:** `.gitignore`, License, Issue Templates, and CI workflows are automatically configured.
---
## 📦 Installation
Prerequisites: **Python 3.10+** and [pipx](https://pypa.github.io/pipx/) (recommended).
### Option 1: Install from Source (Recommended for Teams)
This installs the tool directly from the git repository. It is the easiest way to ensure your team is using the latest approved templates.
```bash
# Install the 'dym-new' command globally
pipx install git+https://github.com/your-org/dym-kit.git#subdirectory=tools
```
### Option 2: Local Development (For Kit Maintainers)
If you want to edit the templates and test them immediately:
1. Clone the repository:
```bash
git clone [https://github.com/your-org/dym-kit.git](https://github.com/your-org/dym-kit.git)
cd dym-kit
```
2. Install in Editable Mode:
```bash
pipx install -e ./tools
```
*Now, any change you make to the `templates/` folder is instantly reflected when you run `dym-new`.*
---
## 🛠 Usage
Once installed, the `dym-new` command is available anywhere in your terminal.
### 1. Generate a C++ Application
Creates a modern C++20 app with CMake, Conan, and GoogleTest.
```bash
dym-new --name "Fire Engine" --lang cpp --variant app --level pro --out ./fire-engine
```
### Command Flags
| Flag | Description | Options |
| :--- | :--- | :--- |
| `--name` | Display name of the project | "My Project" |
| `--lang` | Target Language | `cpp` |
| `--variant` | Template Archetype | `app`, `lib` |
| `--level` | Complexity/Rigor Level | `lite`, `pro`, `studio` |
| `--out` | Output Directory Path | `./my-project` |
---
## 📂 Architecture
The kit is split into two parts: the **Templates** (blueprints) and the **Generator** (machinery).
```text
dym-kit/
├── templates/ # The Source of Truth
│ └── cpp/
│ ├── app/ # C++ Application Template
│ └── lib/ # C++ Library Template
└── tools/ # The Generator Tool
├── pyproject.toml # Package Definition
└── src/
└── dym_tool/ # Source Code
└── main.py # The Engine
```
### How It Works
1. **Selection:** The tool locates the requested template in `templates//`.
2. **Filtering:** Based on the `--level` (Lite/Pro/Studio), it removes unnecessary files (e.g., CI workflows are removed in Lite mode).
3. **Renaming:** It handles special filenames (e.g., `_gitignore` becomes `.gitignore`).
4. **Injection:** It replaces tokens like `{{DYM_PROJECT_NAME}}` inside files with your provided name.
---
## 🤝 Contributing
We welcome improvements to the templates!
1. **Setup:** Follow the "Local Development" installation instructions above.
2. **Edit:** Modify files in `templates/`.
* Use `{{DYM_PROJECT_NAME}}` for the display name.
* Use `{{DYM_PROJECT_SLUG}}` for safe filenames (e.g., `my_project`).
3. **Test:** Generate a dummy project to verify your changes.
```bash
dym-new --name "Test Build" --lang cpp --variant app --out ./temp_test
```
4. **PR:** Submit a Pull Request.
---
## 📜 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.