raylib is a simple and easy-to-use library to enjoy videogames programming.




NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no gui tools or editors... just coding in pure spartan-programmers way. Are you ready to enjoy coding?


raylib learning resources


raylib does not provide the typical API documentation or a big set of tutorials. The library is designed to be minimalistic and be learned just from a cheatsheet with all required functionality and a big collection of examples to see how to use that functionality. Best way to learn to code is reading code.


raylib cheatsheet raylib header raylib FAQ raylib Wiki raylib examples raylib games

Overwhelmed by the options? Maybe the raylib game template is a good place for you to start! It provides some structure and a Makefile that are quick and easy to pick up and use.

Try the raylib-game-template

Apart from those materials, there are plenty of tutorials created by the amazing raylib community. It's highly recommended to join the friendly raylib Discord Community to stay up to date of latest raylib news and ask for help when required!


raylib awards


raylib has received several recognitions in the last years. Here are some awards received from Google and Epic Games.


raylib Google Open Source Peer Bonus - 2019 raylib Epic MegaGrant Recipient - Fall 2020 raylib Google Open Source Peer Bonus - 2021

raylib supported platforms


raylib supports multiple target platforms, it has been tested in the following ones but, technically, any platform that supports C language and OpenGL graphics (or similar) can run raylib or it can be very easily ported to.


windows platform linux platform macos platform freebsd platform raspberrypi platform raspberrypi desktop platform android platform html5 platform

raylib language bindings


You can use raylib with multiple programming languages, there are +60 bindings! Here is a list with some of them:


c-sharp raylib binding go raylib binding lua raylib binding python raylib binding rust raylib binding zig raylib binding odin raylib binding more raylib bindings

raylib extra libraries


raylib can be combined with several extra libraries for additional functionality, some of those libraries are already used internally while others are provided for user integration, most of these libraries are single-file header-only with no external dependencies.


OpenGL abstraction layer 3D math library miniaudio wrapper immediate-mode gui library png chunks editor resources packer

raylib technologies tools


raylib is the base technology for raylib technologies tools development! Several multiplatform tools have been developed using raylib and raygui. Check them out!


fx sounds generator textures viewer and formats conversor textures packer and atlas generator icons packer and extractor embed messages into images
quizzer tool raygui styles editor raygui layout editor raygui icons editor rres resource packer

raylib community


Do you need help with raylib? Do you want to keep updated with latest news? Do you want to show your raylib creations? Join our amazing community of raylib developers! Choose the network you prefer! You are welcome!


raylib discord server raylib twitch channel raylib creator twitter raylib reddit channel raylib youtube channel raylib handmade.network project raylib on GitHub

raylib contributions


I'm working hard on raylib but my resources are limited. If you enjoy raylib and want to help, consider a small donation or contributing to the project on GitHub. Thanks!


PayPal donation raylib GitHub Sponsors Patreon contributor Ko-fi donation raylib on itch.io raylib on redbubble

raylib features




raylib architecture


raylib is a highly modular library. Everything is contained within a small number of well defined, specific and self-contained modules, named accordingly to its primary functionality. Note that some of those modules can be used in standalone mode, independently of raylib library.

raylib architecture