Skip to content
/ cren Public

🥬 Cren – A modern build and package manager for C, inspired by Cargo.

License

Notifications You must be signed in to change notification settings

veeso/cren

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cren – A Modern Build and Package Manager for C

cren logo

.github/workflows/ci.yaml License-MIT Conventional Commits

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.

Getting Started

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.

Requirements

  • A modern C compiler (e.g., GCC, Clang).

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 Makefiles 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 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.

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.
  • Registry for sharing and discovering C libraries.

🌟 Cren Book

See Cren Book for detailed documentation and usage examples.

About

🥬 Cren – A modern build and package manager for C, inspired by Cargo.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Languages