35,622
stars
+13
3,380
forks
317
watchers
3,628
prs
2,289
issues
26
releases
363
discussions
README
raylib is a simple and easy-to-use library to enjoy videogames programming.
raylib is highly inspired by Borland BGI graphics lib and by XNA framework and it's especially well suited for prototyping, tooling, graphical applications, embedded systems and education.
NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way.
Ready to learn? Jump to code examples!
---
features
--------
- NO external dependencies, all required libraries are included in raylib
- Multiple platforms supported: Windows, Linux, MacOS, RPI, Android, HTML5... and more!
- Written in plain C code (C99) using PascalCase/camelCase notation
- Hardware accelerated with OpenGL: 1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0
- Unique OpenGL abstraction layer (usable as standalone module): rlgl
- Software Renderer backend (no OpenGL required!): rlsw
- Multiple Texture formats supported, including compressed formats (DXT, ETC, ASTC)
- Multiple Fonts formats supported (TTF, OTF, FNT, BDF, sprite fonts)
- Full 3D support, including 3D Shapes, Models, Billboards, Heightmaps and more!
- Flexible Materials system, supporting classic maps and PBR maps
- Animated 3D models supported (skeletal bones animation, GPU-skinning) (IQM, M3D, glTF)
- Shaders support, including model shaders and postprocessing shaders
- Powerful math module for Vector, Matrix and Quaternion operations: raymath
- Audio loading and playing with streaming support (WAV, QOA, OGG, MP3, FLAC, XM, MOD)
- VR stereo rendering support with configurable HMD device parameters
- Huge examples collection with +220 code examples!
- Bindings to +70 programming languages!
- Free and open source
limitations
-----------
raylib presents some limitations by design for code simplicity. Some forks, alternatives, and samples are available to overcome most of them but it's up to the users to modify the library for their specific needs.
- Single window with single OpenGL context by default, no multi-window support
- Window resize and move stops the rendering loop on platforms supporting a window
- RenderTextures are flipped vertically, as provided by OpenGL, it's up to the user to draw them flipped to the screen
- Font rasterization has lower quality than alternatives like Freetype2, HarfBuzz or Slug
- Text drawing does not support RTL, ligatures or emojis
basic example
--------------
This is a basic raylib example, it creates a window and draws the text "Congrats! You created your first window!" in the middle of the screen. Check this example running live on web here.
c
include "raylib.h"
int main(void)
{
InitWindow(800, 450, "raylib example - basic window");
while (!WindowShouldClose())
{
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("Congrats! You created your first window!", 190, 200, 20Top issues
#5664[examples] Examples collection testing and issues reporting for `raylib 6.0`22 comments · 2026-03-16#6049[rcore] `GetWindowPosition()` possibly incorrect after virtual screen space rearrangement8 comments · 2026-08-10#6378[rcore] Out-of-bounds read in ExportAutomationEventList() with invalid event types4 comments · 2026-11-07#6268[rcore][Android] Scissor mode not working correctly2 comments · 2026-10-14#6333[rcore] `IsWindowResized()` returns `false` after calling `SetWindowSize()`1 comments · 2026-10-25
Discussions
#6344Input device hotplugging and reading all keyboards/pointers on platform DRM1 comments · 2026-10-27#6336RUI, raylib user interface - a gui toolkit for Nim0 comments · 2026-10-27#6327Trouble wit embedding .wav as header2 comments · 2026-10-24#6276raylib v6.21 comments · 2026-10-15#6216MSDF Atlas Studio – Open-source visual font atlas generator with static C header export0 comments · 2026-10-04#6189Consistent skinning uniforms across configurations and GLES0 comments · 2026-09-26#6098SDL3 + Raylib on Andriod?2 comments · 2026-08-26#6087Suggestion: Make the documentation <pre> tags responsive0 comments · 2026-08-22
Latest release
raylib v6.2 6.2 2026-10-15raylib 6.2 release notes After almost 6 months since latest raylib release, here it is a new installment of the library. It was supposed to be just a patch version to address an issue with CMake build system but it took way longer than expected and included +300 changes and improvements. Some numbers for this release: - ~100 closed issues (for a TOTAL of +2240!) - +500 commits since previous RELEASE (for a TOTAL of +10280!) - +20 new functions ADDED to raylib API (for a TOTAL of 619!) - +10 new examples to learn from (for a TOTAL of +225!) - +100 new contributors (for a TOTAL