Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

awesome-c-ecosystem

A survey of the smaller known C compilers and libc implementations necessary for maintaining JACLibc and comparing to other uses. For the time being this is mostly just there but in time it should grow.

Compilers

Small/Educational Compilers

  • xcc (MIT) - Full toolchain compiler/assembler/linker/libc for x86-64/aarch64/riscv64/wasm
  • tcc (LGPL v2.1+) - Tiny C Compiler, ~100KB executable, very fast compilation, supports x86/x64/ARM/RISC-V
  • chibicc (MIT) - Small C11 compiler by Rui Ueyama, can compile Git/SQLite/libpng, educational focus
  • lacc (MIT) - Simple self-hosting C compiler with rich IR and basic optimization
  • 9cc (MIT) - Rui Ueyama's earlier educational C compiler, predecessor to chibicc
  • lcc (Custom non-commercial) - Fraser & Hanson's retargetable ANSI C compiler, well-documented academic compiler
  • kefir (GPL v3 + BSD-3 runtime) - Independent C17/C23 compiler with extensive validation, SSA optimization

Industrial Heavyweights

  • gcc (GPL v3) - GNU Compiler Collection, the standard Linux C compiler
  • clang (Apache 2.0) - LLVM-based compiler, Apple's choice, excellent diagnostics
  • msvc (Proprietary) - Microsoft Visual C++, Windows development standard
  • icc (Proprietary) - Intel C Compiler, optimized for Intel processors

libc Implementations

Full-Featured

  • glibc (LGPL v2.1+) - GNU C Library, standard on most Linux distributions
  • musl (MIT) - Lightweight, fast, simple C library, Alpine Linux default

Minimal/Embedded

  • dietlibc (GPL v2) - Size-optimized libc for creating small static binaries
  • uClibc-ng (LGPL v2.1) - Small C library for embedded Linux systems, fork of original uClibc
  • xcc libc (MIT) - Minimal libc implementation included with xcc toolchain
  • newlib (Multiple BSD-style) - Standard C library for embedded systems, widely used in vendor toolchains
  • picolibc (Multiple BSD-style) - Smaller embedded libc based on newlib, removes bloat, uses TLS
  • AVR-libc (Modified BSD) - Optimized C library for Atmel AVR 8-bit microcontrollers
  • Embedded Artistry libc (MIT) - Stripped-down C library for microcontrollers with unit tests
  • Zephyr minimal libc (Apache 2.0) - Ultra-minimal subset for the Zephyr RTOS kernel

Mobile/Platform-Specific

  • Bionic (BSD + Apache 2.0) - Google's Android C library, BSD-licensed, smaller than glibc
  • BSD libc (BSD) - Various BSD system implementations (FreeBSD, OpenBSD, NetBSD)
  • Microsoft UCRT (Proprietary) - Universal C Runtime for Windows, C99-compliant

Specialized

  • cosmopolitan (ISC) - Build-once run-anywhere libc, creates polyglot executables for multiple platforms
  • klibc (GPL v2) - Minimal libc primarily for Linux early boot and initramfs
  • LLVM libc (Apache 2.0) - LLVM project's new C library implementation, header-only modular design

About

A survey of the smaller C ecosystem

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors