Skip to content

The C3 Guide

What is C3?

C3 is an evolution of C and a minimalist systems programming language, featuring:

🦺 Ergonomics and Safety

  • Optionals to safely and quickly handle errors and null.
  • Defer to clean up resources.
  • Slices and foreach for safe iteration.
  • Contracts in comments, to add constraints to your code.

⚡ Performance by default

  • Write SIMD vectors to program the hardware directly.
  • Access to different memory allocators to fine tune performance.
  • Zero overhead errors.
  • Fast compilation times.
  • LLVM backend for industrial strength optimisations.
  • Easy to use inline assembly.

🔋Batteries included standard library

  • Dynamic containers and strings.
  • Cross-platform abstractions for ease of use.
  • Access to the native platform when you need it.

🔧 Leverage existing C or C++ libraries

  • Full C ABI compatibility.
  • C3 can link C code, C can link C3 code.

📦 Modules are simple

  • Modules namespace code.
  • Modules make encapsulation simple with explicit control.
  • Interfaces define shared behaviour to write robust libraries.
  • Generic modules make extending code easier.
  • Simple struct composition and reuse with struct subtyping.

🎓 Macros without a PhD

  • Macros can be similar to normal functions.
  • Or write code that understands the types in your code.