Frameworks#

C tends to use small, focused libraries rather than large frameworks. The ones that do exist live mostly in three domains: GUIs, embedded operating systems, and game engines.

GUI / Graphics#

  • GTK , the toolkit behind GNOME.

  • Qt , C++ first, but extensively used from C via wrappers; the cross-platform desktop standard.

  • SDL , low-level multimedia / input / windowing.

  • GLFW , OpenGL / Vulkan window and input handling.

  • Dear ImGui (C++ with C bindings), immediate-mode UI for tools and overlays.

  • Nuklear, single-header immediate-mode GUI in C.

Networking / Web#

Game Engines / Frameworks#

  • raylib , simple, batteries-included.

  • Allegro , classic game library.

  • LÖVR , though Lua-driven, written in C.

  • id Tech / Quake engine derivatives , still the basis of many open-source games.

Embedded / RTOS#

Real-time operating systems written in C, used on microcontrollers.

Testing#

  • Unity , minimal C unit test framework, popular in embedded.

  • Check , xUnit-style.

  • Criterion, modern, header-only.

  • cmocka , with mocking support.

  • µnit , single-file.

Database / Storage#

  • SQLite , the most-deployed database in the world; embedded directly.

  • LMDB , memory-mapped key-value store.

  • LevelDB, C++ but commonly bound to from C.

  • libpq, official PostgreSQL client.

Cryptography#

  • OpenSSL , the everywhere-default.

  • BoringSSL, Google’s fork, used in Chrome and Android.

  • mbedTLS, embedded-friendly TLS stack.

  • libsodium , modern, opinionated, hard to misuse.

  • wolfSSL , compact TLS for constrained environments.

General-Purpose / Stdlib Augmentation#

  • GLib , general-purpose utilities (collections, threading, I/O) underpinning GTK.

  • APR , Apache Portable Runtime; the foundation of httpd.

  • klib, header-only generic data structures.