Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please, do not fork/use this project #45

Open
overdev opened this issue Nov 10, 2022 · 0 comments
Open

Please, do not fork/use this project #45

overdev opened this issue Nov 10, 2022 · 0 comments

Comments

@overdev
Copy link
Owner

overdev commented Nov 10, 2022

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 overdev pinned this issue Nov 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant