Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/veeso/cren
🥬 Cren – A modern build and package manager for C, inspired by Cargo.
https://github.com/veeso/cren
c-language c-package-manager c-programming package-manager
Last synced: 8 days ago
JSON representation
🥬 Cren – A modern build and package manager for C, inspired by Cargo.
- Host: GitHub
- URL: https://github.com/veeso/cren
- Owner: veeso
- License: mit
- Created: 2025-01-04T14:54:12.000Z (18 days ago)
- Default Branch: main
- Last Pushed: 2025-01-13T11:09:39.000Z (9 days ago)
- Last Synced: 2025-01-13T12:24:59.458Z (9 days ago)
- Topics: c-language, c-package-manager, c-programming, package-manager
- Language: C
- Homepage:
- Size: 240 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cren – A Modern Build and Package Manager for C
[![.github/workflows/ci.yaml](https://github.com/veeso/cren/actions/workflows/ci.yaml/badge.svg)](https://github.com/veeso/cren/actions/workflows/ci.yaml)
[![License-MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)Cren is a tool inspired by [Cargo](https://doc.rust-lang.org/cargo/), designed to modernize and simplify **C development**. With its modular approach and built-in features, Cren allows developers to focus on writing code by automating repetitive tasks like dependency management, building, testing, and formatting.
## 🚀 Key Features
- **Dependency Management**: Initial support for linked libraries (`-lm`, `-lz`, etc.), with future plans for full builds of external dependencies.
- **Simplified Build Process**: Compile your projects with a single command, no need to write `Makefile`s manually.
- **Integrated Testing**: Add tests directly within your source files using macros similar to Rust's `#[test]`.
- **Linting and Formatting**: Ensure consistent code style with dedicated commands.
- **Centralized Configuration**: Describe your project and dependencies in a simple `Cren.toml` file.## 🛠️ Available Commands
- `cren new`: Initialize a new project with a predefined directory structure.
- `cren build`: Compile your project effortlessly.
- `cren run`: Run compiled project.
- `cren test`: Run integrated tests written directly in your source code.
- `cren lint`: Analyze your code for potential issues.
- `cren format`: Automatically format your code based on specified guidelines.## 🎯 Why Cren?
Cren is built for developers who want a streamlined workflow for C projects. By combining modern practices with the simplicity of a single tool, Cren bridges the gap between traditional C workflows and the convenience of modern build systems.
## 🔮 Future Plans
- Full build support for external dependencies.
- Parallelized test execution.
- Support for custom build pipelines and hooks.
- Integration with popular CI/CD systems.## 🛑 Requirements
- A modern C compiler (e.g., GCC, Clang).
- Make or CMake (optional for advanced builds).## 🌟 Cren Book
See [Cren Book](./doc/index.md) for detailed documentation and usage examples.