A single-header, dependency-free 2D graphics library for C that renders pixels directly into memory.
Olive.c is a lightweight 2D graphics library for C that renders pixel data directly into memory without any external dependencies. It provides basic drawing primitives like shapes and fills, focusing solely on generating pixel buffers while leaving display handling to the user. This makes it ideal for custom rendering pipelines, embedded systems, or educational projects where simplicity and portability are key.
C developers needing a minimal, dependency-free graphics library for software rendering, embedded systems, or cross-platform applications. It's also suitable for hobbyists and educators looking to understand low-level graphics programming.
Developers choose Olive.c for its extreme simplicity—just copy one file into a project—and its zero-dependency design, which ensures portability across platforms. Unlike heavier graphics libraries, it gives full control over pixel data without imposing display or window management systems.
Simple 2D Graphics Library for 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.
Olive.c follows the stb-style pattern where you can copy-paste the single file into your project, eliminating build system dependencies and simplifying integration.
With no external libraries required, it's highly portable and works on any platform where C runs, from embedded systems to WebAssembly, as demonstrated in the demos.
All drawing operations write directly to a user-provided pixel buffer, giving developers full control over the data for custom display backends like SDL or terminal ASCII art.
The library's agnostic design allows it to target multiple platforms seamlessly, with demos showing SDL for desktop, terminal output, and WebAssembly for browsers.
The README explicitly warns that Olive.c is a work in progress with potential breaking changes, making it risky for production use without careful versioning.
It only generates pixel buffers; developers must handle window creation, event management, and actual display separately, adding complexity and requiring additional libraries or code.
Olive.c provides only basic drawing primitives like circles and fills, lacking advanced graphics features such as anti-aliasing, image loading, or transformations, which may need manual implementation.