GLFW: A binding for GLFW, An OpenGL Framework

[ bsd3, graphics, library ] [ Propose Tags ]

A Haskell binding for GLFW OpenGL Framework, a window system independent toolkit for writing OpenGL programs. For more information about the C library on which this binding is based, please see:

[Skip to Readme]




Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.2, 0.3, 0.4.1, 0.4.2,,,,,,,,,
Dependencies base (<4.13), OpenGL (>=2.1) [details]
License BSD-3-Clause
Maintainer Paul H. Liu <>
Revised Revision 1 made by Bodigrim at 2022-02-26T23:28:44Z
Category Graphics
Home page
Uploaded by PaulLiu at 2007-12-30T00:10:44Z
Distributions NixOS:
Downloads 16928 total (28 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for GLFW-0.2

[back to package description]
This is a Haskell module for GLFW OpenGL framework
( It provides an alternative
to GLUT for OpenGL based Haskell programs.

SOE ( now depends on this package.


- Thu Dec 20 EST 2007

  version 0.2 is repackaged to work with Cabal 1.2 or later.
  Now it builds and installs out-of-box on most platforms.


The package comes together with a (partial) source distribution 
of GLFW v2.6, which is compiled and installed together with
the Haskell package.

It follows the standard Cabal package installation steps:

1. To configure the module, type

       runhaskell Setup.hs configure

       runhaskell Setup.hs configure --user --prefix=DIR

   if you want to install the package to your user's directory
   instead of the system one (replace DIR with your own directory

2. To build the module, type 

       runhaskell Setup.hs build

3. To install, type 

       runhaskell Setup.hs install   

In the process it builds all GLFW C library source code. You may
use "runhaskell Setup.hs build --verbose" to see the actual 
compilation steps.


For Windows users, you'll have to include GHC's gcc-lib directory 
in your PATH environment, e.g., c:\ghc\ghc-6.6.1\gcc-lib, before 
configuring the GLFW module, otherwise it'll complain about missing
program for ld.

GHC 6.8.x is already equipped with Cabal 1.2, so everything should
work as expected. But for GHC 6.6.x users, you'll have to first 
install the newest version of Cabal 1.2 before installing GLFW. 
Cabal 1.2 also requires the module FilePath to be priorly installed,
which doesn't come with GHC 6.6.x.

Package Usage

The package is tested with GHC 6.6.1 (with Cabal 1.2.2) on all
three platforms (Linux, Win32/MinGW, and Mac OS X). Though it may
work with older versions of GHC or even Hugs, they are not tested.

It installs a new Haskell package called "GLFW" and the actual
module to import is "Graphics.UI.GLFW". You'll need to pass 
"-package GLFW" to GHC if you want to compile it.

GLFW itself is well documented (see glfw/docs directory), but
the Haskell module isn't. You may see the SOE.hs from the 
SOE package for sample usage.

Not all functions are fully tested, and there are still a 
few GLFW C functions missing from the Haskell module, namely 
the image loading and joystick ones. They'll be added in 
future releases. 

The Haskell module also provides basic text rendering while
GLFW doesn't. It comes from a free 8x16 font which is made
into a TGA texture, stored as a Haskell string in the file 
GLFW.hs (also the reason for its big size). Text rendering
is only possible with Alpha enabled. Again, see SOE.hs from
the SOE package for sample usage.

GLFW doesn't work well with GHC threads, forkIO or threadDelay. 
So avoid them if you can.

Contact Information

You may send your bug report and feature request to the package 
maintainer: Paul H. Liu <>.

Last Updated: Thu Dec 20 EST 2007