A collection of single-file public domain libraries for C/C++ covering graphics, audio, game development, and utilities.
stb is a collection of single-file, public domain libraries for C and C++ that provide essential functionality for graphics, audio, game development, and general utilities. It solves the problem of complex library integration by offering self-contained, easy-to-deploy headers with no external dependencies.
C and C++ developers, especially those working on games, graphics applications, or embedded systems who need lightweight, portable libraries without build system overhead.
Developers choose stb for its unparalleled ease of integration (single-file design), permissive licensing (public domain/MIT), and broad functionality covering common needs without requiring complex dependencies or build configurations.
stb single-file public domain libraries for C/C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Each library is entirely self-contained in one header file, allowing integration by simply dropping the file into a project without complex build systems or external dependencies.
Dual-licensed as public domain or MIT, enabling unrestricted use, modification, and relicensing with no attribution required, ideal for commercial or proprietary software.
Covers essential areas like image loading/writing, font rasterization, audio decoding, and data structures, reducing the need to hunt for multiple specialized libraries.
Written in pure C with no external libraries required, ensuring portability across platforms and avoiding link conflicts common in Windows environments.
Security bugs are discussed publicly in GitHub issues, and the README warns that fixes may take significant time to implement or merge, posing risks for critical applications.
Libraries prioritize ease of integration over maximum performance; for example, stb_image lacks runtime SIMD detection on GCC, potentially leading to slower execution compared to optimized alternatives.
Maintained for compatibility with old compilers like MSVC 6, which means avoiding C99 features and modern optimizations, potentially limiting code efficiency and developer convenience.