libepoxy
brew install libepoxy
v1.5.10
MIT
C library that abstracts OpenGL function pointer management across platforms and GL versions.
Why you might care
Epoxy eliminates the tedious boilerplate of manually loading OpenGL functions via dlopen/dlsym/glXGetProcAddress, automatically resolving function pointers at first use. Essential as a build dependency for OpenGL applications that need to support multiple GL versions and contexts (core, compatibility, GLES) without platform-specific code. Widely used in graphics tooling and 3D apps.
7.4k
30-day installs · #440
26.4k
90-day · #431
89.2k
365-day · #462
744
★ GitHub stars · updated 2mo ago
Build dependencies
Links
- https://github.com/anholt/libepoxy
- GitHub: anholt/libepoxy
- Brew formula source: Formula/lib/libepoxy.rb
Blurb generated by claude-haiku-4-5 on today.
Raw metadata
{
"aliases": [],
"alternatives": [
"GLEW",
"GLAD",
"glLoadGen"
],
"build_dependencies": [
"meson",
"ninja",
"pkgconf"
],
"categories": [
"library",
"graphics"
],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Library for handling OpenGL function pointer management",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:40:52+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "libepoxy",
"github_default_branch": "master",
"github_last_commit_at": "2026-04-03T13:07:10Z",
"github_readme_excerpt": "\n\n\n\n[](https://opensource.org/licenses/MIT)\n\nEpoxy is a library for handling OpenGL function pointer management for\nyou.\n\nIt hides the complexity of `dlopen()`, `dlsym()`, `glXGetProcAddress()`,\n`eglGetProcAddress()`, etc. from the app developer, with very little\nknowledge needed on their part. They get to read GL specs and write\ncode using undecorated function names like `glCompileShader()`.\n\nDon\u0027t forget to check for your extensions or versions being present\nbefore you use them, just like before! We\u0027ll tell you what you forgot\nto check for instead of just segfaulting, though.\n\nFeatures\n--------\n\n * Automatically initializes as new GL functions are used.\n * GL 4.6 core and compatibility context support.\n * GLES 1/2/3 context support.\n * Knows about function aliases so (e.g.) `glBufferData()` can be\n used with `GL_ARB_vertex_buffer_object` implementations, along\n with GL 1.5+ implementations.\n * EGL, GLX, and WGL support.\n * Can be mixed with non-epoxy GL usage.\n\nBuilding\n--------\n\n```sh\nmkdir _build \u0026\u0026 cd _build\nmeson\nninja\nsudo ninja install\n```\n\nDependencies for Debian:\n\n * meson\n * libegl1-mesa-dev\n\nDependencies for macOS (using MacPorts): \n\n * pkgconfig\n * meson\n\nThe test suite has additional dependencies depending on the platform.\n(X11, EGL, a running X Server).\n\nSwitching your code to using epoxy\n----------------------------------\n\nIt should be as easy as replacing:\n\n```cpp\n#include \u003cGL/gl.h\u003e\n#include \u003cGL/glx.h\u003e\n#include \u003cGL/glext.h\u003e\n```\n\nwith:\n\n```cpp\n#include \u003cepoxy/gl.h\u003e\n#include \u003cepoxy/glx.h\u003e\n```\n\nAs long as epoxy\u0027s headers appear first, you should be ready to go.",
"github_repo": "anholt/libepoxy",
"github_stars": 744,
"github_topics": [],
"homepage": "https://github.com/anholt/libepoxy",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 7416,
"installs_365d": 89197,
"installs_90d": 26363,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "MIT",
"llm_generated_at": "2026-06-20T23:44:53+00:00",
"llm_model": "claude-haiku-4-5",
"name": "libepoxy",
"oldnames": [],
"one_liner": "C library that abstracts OpenGL function pointer management across platforms and GL versions.",
"optional_dependencies": [],
"rank_30d": 440,
"rank_365d": 462,
"rank_90d": 431,
"raw_hash": "2d99b13e9965128b",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/lib/libepoxy.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "1.5.10",
"versioned_formulae": [],
"why_use_this": "Epoxy eliminates the tedious boilerplate of manually loading OpenGL functions via dlopen/dlsym/glXGetProcAddress, automatically resolving function pointers at first use. Essential as a build dependency for OpenGL applications that need to support multiple GL versions and contexts (core, compatibility, GLES) without platform-specific code. Widely used in graphics tooling and 3D apps."
}