GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.

GLFW is written in C and supports Windows, macOS, the X Window System and the Wayland protocol.

GLFW is licensed under the zlib/libpng license.

Gives you a window and OpenGL context with just two function calls
Support for OpenGL, OpenGL ES, Vulkan and related options, flags and extensions
Support for multiple windows, multiple monitors, high-DPI and gamma ramps
Support for keyboard, mouse, gamepad, time and window event input, via polling or callbacks
Comes with a tutorial, guides and reference documentation, examples and test programs
Open Source with an OSI-certified license allowing commercial use
Access to native objects and compile-time options for platform specific features
Community-maintained bindings for many different languages

No library can be perfect for everyone. If GLFW isn’t what you’re looking for, there are alternatives.

Node.js bindings glfwJS added

Posted on

Artem Kunets has written the Node.js bindings glfwJS that cover GLFW 3.3. They are based on the new N-API.

Version 3.3.2 released

Posted on

GLFW 3.3.2 is available for download.

This is a primarily a bug fix release. It improves Vulkan support on macOS with VK_EXT_metal_surface support and better run-time loading, and adds fixes for issues on Windows, macOS and X11.

Version 3.3.1 released

Posted on

GLFW 3.3.1 is available for download.

This is a bug fix release and does not add any new features. It fixes issues on all supported platforms.

See the news archive for older posts.