raylib-py icon indicating copy to clipboard operation
raylib-py copied to clipboard

Please, do not fork/use this project

Open overdev opened this issue 1 year ago • 0 comments

It may seem that this project is abandoned and, in some sense it is.

In the first days of this project I encountered some difficulties related to the maintenance of the code. Raylib is a fast growing library and I wasn't having enough time to keep raylib-py up to speed. Maybe it was my lack of experience.

I started to look for a better way to maintain the code. In a frustrated attempt I've tried to create a bind generator that would translate the c headers into a python source file. I failed due to the complexity of parsing c headers, but I got close to something that would work.

Some time later, Raymon (raylib's author) came with a tool in c that would do the parsing and generate the desired information in some file formats like JSON, XML and others. That was exactly what I need move forward.

Back in august, this year, I started implementing it and today it reached a point in the development where I'm able to talk about it publicly.

Instead of creating a bind generator for my own use, I decided to make it as a tool, such that anyone can use to create his/her own binding and customize it as seen fit. It works via command line, it has a lot of options (like keeping names in python or C99 convention, and whether/how to add typing information), You can also use it to generate a cheat sheet in markdown. Finally, if that's not enough, there's also a template package if you desire to build a python package with the generated binding and install it on your system (includes a tutorial on how to make it).

EDIT: the main advantage of this new approach is that you become version independent: whenever a new C raylib is released, all you have todo, in the best scenario, replace a couple files and rerun the bind generator. No need to wait for pypi package updates (you can just make your own package).

The repo for this bind generator is raylibctbg ('ctbg' stands for CTypes Binding Generator). There you can learn more about features, howtos and more.

Somewhere in the future I'll add the C raylib examples translated to python, to be able to test and ensure everything is working as expected.

Please, give it a try and send me some feedback.

overdev avatar Nov 10 '22 22:11 overdev