orangeduck/Cello
FreeHigher level programming in C
About orangeduck/Cello
Cello is an open-source C library that introduces higher-level programming constructs to the C language. It acts as a modern, powerful runtime system, enabling features such as generic data structures, polymorphic functions, interfaces/type classes, constructors/destructors, optional garbage collection, exceptions, and reflection. Cello works seamlessly alongside standard C, allowing developers to benefit from C's performance and tooling while using more expressive abstractions. The library includes stack and heap object creation, collection iteration, and compatibility with standard C types. It is primarily an experimental project exploring the limits of C, but it also serves as a practical toolkit for prototyping and learning.
Key Features
Pros & Cons
- Brings modern high-level concepts to a low-level language
- Seamless coexistence with standard C code
- Optional garbage collection reduces manual memory management
- Supports reflection and exception handling
- Open-source and free to use
- Includes extensive documentation and examples
- Experimental project, not recommended for production use
- May introduce runtime overhead compared to plain C
- Requires learning Cello's runtime conventions and types
- Limited community and ecosystem compared to mainstream C++ or Rust
- Potentially steep learning curve for C purists