Skip to main content

Python CFFI bindings for Raylib

Project description

Python Bindings for Raylib 4.2

New CFFI API static bindings.

  • Automatically generated to be as close as possible to original Raylib.
  • Faster, fewer bugs and easier to maintain than ctypes.
  • Commercial-friendly license.
  • Docstrings and auto-completion.
  • Now includes extra libraries: raymath, raygui, rlgl and physac

Full documentation


pip3 install raylib

from pyray import *
init_window(800, 450, "Hello")
while not window_should_close():
    draw_text("Hello world", 190, 200, 20, VIOLET)


First make sure you have the latest pip installed:

python3 -m pip install --upgrade pip

Then install

python3 -m pip install raylib

On most platforms it should install a binary wheel (Windows 10 x64, MacOS 10.15 x64, Linux Ubuntu1804 x64).

If yours isn't available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g. using homebrew, apt, etc.

Raspberry Pi

Using on Rasperry Pi

Dynamic binding version

There is now a separate dynamic version of this binding:

python3 -m pip install raylib_dynamic

It works on some systems where the static version doesn't, but be sure to read these caveats before using it

Beta testing

If you find a bug, it may be fixed in the latest dev release. You can install an alpha or beta version by specifying the exact version number like this:

python3 -m pip install raylib==


If it doesn't work, try to build manually.. If that works then submit an issue to let us know what you did.

If you need help you can try asking on Discord.

If it still doesn't work, submit an issue.

How to use

There are two APIs, you can use either or both:

If you are familiar with C coding and the Raylib C library and you want to use an exact copy of the C API

Use the C API.

If you prefer a slightly more Pythonistic API and don't mind it might be slightly slower

Use the Python API.

App showcase


Alloy Bloxel Editor

Add your app here!


A related library (that is a work in progress!):

A simplified API for Raylib for use in education and to enable beginners to create 3d games

Help wanted

  • Converting more examples from C to Python
  • Testing on more platforms

License (updated)

The bindings are now under the Eclipse Public License, so you are free to statically link and use in non-free / proprietary / commercial projects!


For fastest performance use Pypy rather than standard Python.

Every call to C is costly, so it's slightly faster if you use Python data structures and functions when calculating in your update loop and then only convert them to C data structures when you have to call the C functions for drawing.


Library Implementation Bunnies (60 FPS) Percentage
Raylib 3.7 C 168100 100%
Raylib Python CFFI 3.7 Pypy 3.7 33800 20%
Raylib Python CFFI 3.7 Python 3.9 7700 4.5%
Raylib Python CFFI 3.7 Python 3.9 Nuitka 8600 5.1%
Raylib Python CFFI 3.7 Dynamic Python 3.9 6300 3.7%

Packaging your app

You can create a standalone binary using the Nuitka compiler. For example, here is how to package Bunnymark:

pip3 install nuitka
cd examples/textures
python3 -m nuitka --onefile --linux-onefile-icon resources/wabbit_alpha.png


RetroWar: 8-bit Party Battle is out now. Defeat up to 15 of your friends in a tournament of 80s-inspired retro mini games.

Coding Games With Pygame Zero & Python is a book for Python beginners.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

raylib- (69.2 kB view hashes)

Uploaded source

Built Distributions

raylib- (737.8 kB view hashes)

Uploaded pp39

raylib- (737.8 kB view hashes)

Uploaded pp38

raylib- (737.8 kB view hashes)

Uploaded pp37

raylib- (829.0 kB view hashes)

Uploaded cp311

raylib- (829.0 kB view hashes)

Uploaded cp310

raylib- (841.0 kB view hashes)

Uploaded cp39

raylib- (1.5 MB view hashes)

Uploaded cp39

raylib- (841.0 kB view hashes)

Uploaded cp38

raylib- (840.9 kB view hashes)

Uploaded cp37

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page