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