Formerly Suzaku
Charmy is a GUI module for Python, allowing switching between different backends, and hence providing a cross-platform while also lightweight solution of building GUI applications.
Charmy is still under development, you may motivate us and boost this process by giving us a star.
This README is a temporary version during early dev stages, and will be changed in future.
Charmy is still under development, and many of its details are not yet designed or may change in the future.
If you are interested in this project, you may join our discussion to see our latest progress. See To Follow Up section for more.
Firstly, the basic structural design must be introduced here. Charmy is designed to be devided into three layer, which are backend layer, graphics layer, widget layer, from bottom to top.
Currently, we almost completed the basic functions of backend and graphics layer, and the effect can be seen by running /tests/graphics.py.
We (The development team members) discuss our latest progress and the next steps in a QQ group chat, which many other Chinese developers also do. Anyone who is interested in (or even better, willing to contribute to) this project will be welcomed to join. The group chat number is: 887102507 .
Please DO NOT create issues irrelevant to software bugs or suggestions etc. in this repository, use GitHub Discussions (if available) or contact us directly in that case.
Unfortunately, currently there is no other discussion group chat available on any other platforms that you may be easier to access. We will create one when we publish our first usable version, because there is no reason to do so before that since users cannot provide any feedback without a working version.
However, the good news is, totowang-hhh (aka. rgzz666, one of the devs) can communicate well in English (and that's why he was the one who wrote this README), so feel free to reach him via any possible method. For instance, simply email me for further discussion.
thx, now I'm getting annoyed with 26-key touchscreen keyboards 😅
The Genesis backend is current used backend. It will be temporarily used during the development of the higher level GUI APIs exposed to users.
The Genesis backend uses Cairo and SDL2 for rendering and window operations respectively.