A collection of single-file C libraries for graphics programming and utility tasks.
par is a collection of single-file C libraries released under the MIT license, primarily focused on graphics-related functionality. These libraries provide lightweight, embeddable solutions for common tasks in computer graphics and general programming, such as mesh generation, camera control, and string management.
C and C++ developers working on graphics applications, embedded systems, or projects requiring minimal dependencies and high performance, such as game engines, simulation tools, or real-time visualization software.
Developers choose par for its minimalism, ease of integration as single-header libraries with no external dependencies beyond standard C, and performance optimizations like malloc-free mesh generation, making it ideal for resource-constrained or performance-critical scenarios.
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 with no external dependencies beyond standard C, making integration trivial as emphasized in the README's philosophy.
Libraries like par_octasphere.h are malloc-free for mesh generation, optimized for scenarios where dynamic memory allocation is prohibitive, as noted in its blog post.
Strict code formatting with a 100-column limit and vertical density is enforced via automated scripts and Travis CI, ensuring high code quality.
Provides focused utilities for common graphics tasks like camera control, shape generation, and line triangulation, with demos and blog posts for reference.
Documentation is limited to header file comments and some blog posts, lacking comprehensive guides, examples, or API references for easier adoption.
Some libraries like par_msquares.h are explicitly marked as unmaintained in the README, indicating potential reliability issues for those components.
As a collection of C libraries focused on graphics, it lacks the broader utility, language bindings, or community support of more general-purpose frameworks.