raysan5/raylib logo

raysan5/raylib

Free

A simple and easy-to-use library to enjoy videogames programming

FreeFree tier
Type
Open Source

About raysan5/raylib

raylib is a simple and easy-to-use open-source C library designed for videogames programming. Written in plain C (C99) with no external dependencies, it provides a hardware-accelerated OpenGL backend (supporting versions 1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0) as well as a software renderer backend. raylib features full 2D and 3D rendering, including models, billboards, heightmaps, animated skeletal models, and a flexible materials system with classic and PBR maps. It supports multiple font and texture formats, shaders, audio streaming (WAV, OGG, MP3, FLAC, XM, MOD), VR stereo rendering, and a powerful math module (raymath). The library is especially well suited for prototyping, tooling, graphical applications, embedded systems, and education. It ships with over 140 code examples and has bindings to more than 70 programming languages. raylib is free and open source under the Zlib/libpng license.

Key Features

No external dependencies; all required libraries included
Multi-platform support: Windows, Linux, macOS, Raspberry Pi, Android, HTML5, and more
Hardware accelerated with OpenGL 1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0
Software renderer backend (rlsw) for environments without OpenGL
Full 3D support including 3D shapes, models, billboards, heightmaps, and animated skeletal models (IQM, M3D, glTF)
Flexible materials system supporting classic maps and PBR maps
Shaders support for model and postprocessing effects
Audio loading and streaming (WAV, QOA, OGG, MP3, FLAC, XM, MOD)
VR stereo rendering with configurable HMD device parameters
Huge examples collection: over 140 code examples

Pros & Cons

Pros
  • Simple and easy to learn, inspired by BGI and XNA
  • No external dependencies; everything is self-contained
  • Cross-platform: works on desktop, mobile, web, and embedded systems
  • Free and open source (Zlib/libpng license)
  • Rich set of features: 2D/3D, shaders, audio, VR, and more
  • Large collection of ready-to-run examples
  • Bindings to many languages for wider accessibility
Cons
  • No visual editor or debugging tools; purely code-based
  • Requires C programming knowledge; no built-in scripting language
  • No integrated physics engine or GUI framework
  • Relatively low-level compared to full game engines (e.g., Unity, Unreal)

Best For

Game development and prototypingTooling and graphical applicationsEmbedded systems developmentEducation and learning game programmingExperimentation with 2D/3D graphics and audio