
A simple and easy-to-use library to enjoy videogames programming
Raylib is a free, open-source library for videogames programming, written in plain C by Ramon Santamaria (raysan5) and released under the zlib license. It's not a game engine: there is no editor, no scene graph, no drag and drop. It's a small set of libraries you link against and call from your own code, which is exactly why so many people learn game programming with it. Since 2013 it has grown into one of the most popular programming libraries on GitHub, with over 35,000 stars.
The API covers the whole loop: window and input handling, hardware-accelerated 2D and 3D rendering through OpenGL, textures and sprites, shaders, audio loading and streaming, fonts, and a full math module (raymath). Everything stays deliberately close to the metal, with no external dependencies to fight and no build system imposed on you. You write C (or one of the 50+ language bindings, from Python and C# to Rust, Go, Lua and Zig), compile in seconds, and get a single small binary that runs on Windows, Linux, macOS, the web via WebAssembly, Android and Raspberry Pi.
Learning is where raylib really shines. The project ships more than 225 official examples covering every module, a one-page cheatsheet listing all 619 functions, and documentation that assumes you're a programmer, not an engine user. Game jams love it for the same reason teachers do: you can go from an empty file to something playable in an afternoon. The author also maintains a family of small companion tools built with raylib itself, like rFXGen for sound effects, rTexPacker for sprite atlases and rGuiStyler for interface styles, all free as well.
The project is in great shape. Version 6.0 (April 2026) was the biggest release ever, backed by an NLnet grant, and version 6.2 (October 15, 2026) added over 300 changes and improvements, 20 new API functions and 10 new examples, with contributions from more than 950 people over the project's life.
Our verdict: if you want to understand what a game engine actually does, or you prefer building your own tools over learning someone else's editor, raylib is the best starting point in free software. If you want visual editing and asset pipelines, look at Godot instead.
Image credits: screenshots from the official raylib examples (github.com/raysan5/raylib, zlib license). Logo: raylib project, via Wikimedia Commons.
Raylib provides a clean, minimalist C API that allows developers to focus on creating rather than fighting with tools. The library is designed with simplicity in mind, making it perfect for beginners and professionals alike. Get started with just a few lines of code and create your first game window within minutes.
With a single codebase, developers can target Windows, macOS, Linux, Web (via WebAssembly), Android, and iOS. The library handles platform-specific details internally, allowing developers to write portable code effortlessly and reach the widest possible audience without maintaining separate codebases.
OpenGL-accelerated rendering for both 2D sprites and full 3D scenes: cameras, models, materials, lighting and custom shaders, all through the same simple API.
Write in C or use community bindings for C++, Python, C#, Rust, Go, Lua, Zig, Odin and dozens of other languages, all tracking the same core library.
Raylib is a free, open-source C library for videogames programming. It's not a game engine with an editor: it's a small set of libraries you call from your own code, which makes it ideal for learning how games actually work.
Raylib runs on Windows, Linux, macOS, the web (via WebAssembly), Android and Raspberry Pi. A single codebase targets all of them, with no external dependencies required.
Yes. The zlib license allows commercial, closed-source games with no royalties and no attribution requirement. Thousands of published games already use it.