Repolode
raysan5

raysan5/raylib

A simple C library for making videogames, with 2D/3D graphics, input, audio and cross-platform support, no external dependencies.

Open-source alternative to:UnityUnreal Engine

Stars
35,359
Forks
3,350
Open issues
10
Last commit
6 hours ago

What is it?

raylib is a C library for videogame programming, designed to be simple enough for prototyping, education, tooling and embedded systems. It draws inspiration from the Borland BGI graphics library and the XNA framework, and provides a single API for opening a window, handling input, rendering 2D and 3D content, and playing audio.

The library is written in C99 with all required dependencies bundled in, so it needs no external packages to build. It targets Windows, Linux, macOS, Raspberry Pi, Android and HTML5, and uses OpenGL for hardware acceleration, with a software renderer available as an alternative. Support covers common texture, font, 3D model (IQM, M3D, glTF) and audio formats, along with shaders, PBR materials and a math module for vectors, matrices and quaternions.

raylib favors minimalism over tooling: it has no built-in editor or debug interface, and it is learned mainly through its large set of examples and a function cheatsheet. Bindings exist for many other programming languages.

Key features

  • 01Dependency-free C99 library with all required code bundled
  • 02Runs on Windows, Linux, macOS, Raspberry Pi, Android and HTML5
  • 032D and 3D rendering with models, shaders and PBR materials
  • 04Skeletal animation for IQM, M3D and glTF models
  • 05Audio loading and streaming for common formats such as WAV, OGG, MP3 and FLAC
  • 06Vector, matrix and quaternion math module

Use cases

  • Prototyping a 2D or 3D game quickly in C
  • Teaching game programming with a minimal API
  • Building graphical tools or visualizations without a large engine
  • Running graphics applications on embedded boards such as Raspberry Pi

Quick start

  1. 1

    Download a binary release from the GitHub Releases page

  2. 2

    Or follow the platform build guides in the raylib Wiki

  3. 3

    Start from the basic window example in the README

Things to know

  • Single window with a single OpenGL context by default, with no multi-window support.
  • Window resize and move stops the rendering loop on platforms that support a window.
  • Font rasterization has lower quality than alternatives like Freetype2.
  • Text drawing does not support RTL, ligatures or emojis.

Topics

FAQ

What is raylib?
A simple C library for making videogames, with 2D/3D graphics, input, audio and cross-platform support, no external dependencies. raylib is a C library for videogame programming, designed to be simple enough for prototyping, education, tooling and embedded systems. It draws inspiration from the Borland BGI graphics library and the XNA framework, and provides a single API for opening a window, handling input, rendering 2D and 3D content, and playing audio.
Is raylib free to use? What license does it have?
raylib is open source under the Zlib license. Check the license terms before using it in commercial products.
Is raylib still maintained?
Actively maintained. The last commit to raylib was on Oct 21, 2026.
What can I use raylib for?
Prototyping a 2D or 3D game quickly in C Teaching game programming with a minimal API Building graphical tools or visualizations without a large engine Running graphics applications on embedded boards such as Raspberry Pi
How do I install raylib?
Download a binary release from the GitHub Releases page Or follow the platform build guides in the raylib Wiki Start from the basic window example in the README
Where can I get raylib?
The source code and installation instructions are on GitHub: https://github.com/raysan5/raylib

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects