Metadata-Version: 2.1
Name: raylib
Version: 2.5.dev3
Summary: Python CFFI bindings for Raylib
Home-page: https://github.com/electronstudio/raylib-python-cffi
Author: Electron Studio
Author-email: github@electronstudio.co.uk
License: LGPLv3+
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Requires-Dist: cffi

# Python Bindings for Raylib

This uses CFFI API static bindings rather than ctypes.  Hopefully this will be faster, the static type knowledge from the C
headers will result in fewer bugs, and using the original headers will make it easier to maintain.

Currently the goal is make usage as similar to the original C as CFFI will allow.  There are a few differences
you can see in the examples.  Making a 'Pythonic' library would be an additional layer on top which hasn't been
done yet.

See test.py and examples/*.py for how to use.

# Installing

MacOS: Python 3.7: we distribute a statically linked Raylib library, so in theory the only thing you need to do is install
us from Pypi.

    NOT WORKING CURRENTLY pip3 install -i https://test.pypi.org/simple/ raylib

Linux: Python 3.6: we dont distribute Raylib, so you must have Raylib 2.5dev already installed on your system.

    NOT WORKING CURRENTLY pip3 install -i https://test.pypi.org/simple/ raylib

If you're using a different version of Python, or using Windows, or maybe a Linux/Mac with incompatible libraries
you will have to build.

    cd raylib
    python3 build_linux.py
    python3 build_mac.py

# Platforms tested

 * MacOS 10.12.6 - Python 3.7
 * Ubuntu 18.04 LTS - Python 3.6

# HELP WANTED

 * converting more examples from C to python
 * testing and building on more platforms

### Dynamic bindings

I have attempted to do CFFI ABI dynamic bindings too in order to avoid the need to compile a C extension module,
but they don't work properly.  They fail in the same place the ctypes binding fails, accessing
materials of a model, because Python can't dynamically tell the difference between a pointer and an array. There's probably
  some way to specify this (e.g. in raylib_modified.h) but it's difficult to be sure we fixed them all because the errors
 are often completely silent.

 See test_static.py for the non-working example.

