A collection of single-file C libraries for graphics programming, mesh generation, and utility tasks.
par is a collection of single-file C libraries created by Philip Allan Rideout, primarily targeting graphics programming and utility tasks. It provides lightweight, dependency-free tools for mesh generation, camera control, string management, and other common needs in C/C++ projects. The libraries are designed to be easily dropped into existing codebases without complex build configurations.
C/C++ developers working on graphics applications, game engines, or tools that require efficient geometry processing, camera systems, or utility functions. It's especially useful for those who prefer minimal dependencies and straightforward integration.
Developers choose par for its simplicity (single-file headers), performance (malloc-free designs in some libraries), and focus on graphics-related utilities not always available in standard libraries. The MIT license and consistent code formatting also make it appealing for professional and open-source projects.
single-file C libraries from Philip Allan Rideout
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 a single header file, enabling easy, dependency-free integration into C/C++ projects without complex build systems, as emphasized in the README.
Provides practical utilities like malloc-free mesh generation in par_octasphere.h and camera controls, targeting real-time graphics needs with linked demos and blog posts.
Libraries such as par_octasphere.h offer malloc-free mesh generation to minimize runtime overhead, crucial for performance-critical applications.
Strict formatting rules with 100-column limits and vertical density are automated via tools like uncrustify, ensuring maintainable code as described in the code formatting section.
Documentation is limited to header comments and sporadic blog posts, lacking centralized guides or examples for complex use cases, which can hinder onboarding.
Some libraries like par_msquares.h are explicitly labeled as unmaintained, and overall project updates might be infrequent, risking compatibility issues.
Running tests requires CMake and pkg-config, adding setup overhead for simple verification, as noted in the tests section of the README.