Cren is a tool inspired by 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.
Caution
Project is in early development stage. Use at your own risk. Currently only the new, manifest and build commands are implemented.
You can install Cren by running the following command:
curl --proto '=https' --tlsv1.2 -sSfL https://get.cren.cc | sh
Alternatively, you can download the latest release binary from the releases page.
- A modern C compiler (e.g., GCC, Clang).
- 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.
- cren build: Compile your project effortlessly.
- cren clean: Remove build artifacts and temporary files.
- cren manifest: Manage your project's manifest file.
- cren new: Initialize a new project with a predefined directory structure.
- cren run: Run compiled project.
-
cren format
: Automatically format your code based on specified guidelines. -
cren lint
: Analyze your code for potential issues. -
cren publish
: Publish your project to a registry for sharing with others. -
cren test
: Run test units and integration tests written directly in your source code.
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.
- Full build support for external dependencies.
- Parallelized test execution.
- Support for custom build pipelines and hooks.
- Integration with popular CI/CD systems.
- Registry for sharing and discovering C libraries.
See Cren Book for detailed documentation and usage examples.