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, Wayland and X11.

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.

Version 3.5.1 released

Posted on

GLFW 3.5.1 is available for download.

This is a smaller feature release. It adds a number of minor features and fixes for issues on all supported platforms.

Version 3.5 was skipped because of an accidentally published incorrect Git tag.

Version 3.5 skipped

Posted on

Version 3.5 has been skipped because of an accidentally published incorrect Git tag.

Version 3.4 released

Posted on

GLFW 3.4 is available for download.

This is a smaller feature release, as a basis for future work.

It adds runtime platform selection, better support for Wayland, both Wayland and X11 enabled by default, more standard cursor shapes, custom heap allocator support, per-window mouse input passthrough, window title query, a conforming Null platform available everywhere, window hints for initial position, new (harmless) errors informing about missing features, several platform-specific hints, a new native-access function, a hint for selecting ANGLE backend, various other minor features and fixes for issue on all supported platforms.

GLFW 3.4 uses the Visual Studio 2013 subset of C99 and will not compile with Visual Studio 2012 or earlier.

See the news archive for older posts.