h-raylib: Raylib bindings for Haskell

[ apache, graphics, library ] [ Propose Tags ]

This library contains Haskell bindings to the Raylib library. It supports Windows, Mac, Linux, and BSD.

[Skip to Readme]


Manual Flags


Detect platform and automatically add platform-specific configuration


Build for Windows


Build for macOS/OSX


Build for Linux


Build for FreeBSD, OpenBSD, or NetBSD


Cross-compiling for mingw (used in combination with Windows)


Build the example projects


Used when running the program in GHCi


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,,,,,,,,,,,,,,,,,
Change log CHANGELOG.md
Dependencies base (>=4.0 && <4.17.0), containers (>=0.6.0 && <, lens (>=4.0 && <=5.2.2) [details]
License Apache-2.0
Author Anut
Maintainer Anut
Category graphics
Bug tracker https://github.com/Anut-py/h-raylib/issues
Uploaded by Anut at 2023-04-23T17:13:33Z
Distributions NixOS:
Reverse Dependencies 1 direct, 0 indirect [details]
Executables basic-rlgl, basic-audio, postprocessing-effects, basic-shaders, basic-models, custom-font-text, basic-images, camera-ray-collision, first-person-camera, basic-window
Downloads 656 total (51 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 h-raylib-

[back to package description]

h-raylib: Haskell bindings for Raylib

This library includes Haskell bindings to the Raylib library.


To use this package, include it as a dependency in your cabal file.

  # ...

Your platform-specific dependencies will automatically be built by default. You may want to disable this behavior. You can disable the detect-platform flag to achieve this.

You can do this through the command line when running your project, like so

cabal run --constraint="h-raylib -detect-platform"

Or you can add it to your cabal.project file.

package h-raylib
  flags: -detect-platform

The flags platform-windows, platform-mac, platform-linux, and platform-bsd are also supported if you want to build for a different platform.

Platform specific requirements

This library has been tested on Windows and Ubuntu through WSL. It may not work properly on other platforms, so don't hesitate to report issues on the GitHub repository.


h-raylib should automatically work if you do not disable the detect-platform flag. In that case, you may skip this step.

If you do disable the detect-platform flag when building, use the platform-windows flag when building.

Ubuntu/Debian based systems

You may need to run the following to install X11 (a window manager for Linux).

sudo apt-get install libx11-dev libxrandr-dev libxi-dev libxcursor-dev libxinerama-dev

Now, h-raylib should automatically work if you do not disable the detect-platform flag. In that case, you may skip the following.

If you do disable the detect-platform flag when building, use the platform-linux flag when building

Other platforms

This library has not yet been tested on platforms other than Windows and Ubuntu. Anybody willing to try is welcome.

If you get it working on other platforms, please create a pull request in the GitHub repository and update h-raylib.cabal with the relevant config.

Running in GHCi

You can use this library in GHCi just like any other library, but you will need to add --constraint="h-raylib +ghci" to the command. For example, in the root folder of this repository, you could use the command below to use the library through GHCi.

cabal repl --constraint="h-raylib +ghci"

You may need to use :set -fno-ghci-sandbox after entering the REPL to fix problems with multithreaded execution.

On Windows, you may lose joystick support when running in GHCi.


To contribute or learn more about the project, see CONTRIBUTING.md.


  • When I try to run an h-raylib program I get an error saying "The code execution cannot proceed because libwinpthread-1.dll was not found. Reinstalling the program may fix this problem."


This project is licensed under the Apache License 2.0. See more in LICENSE.