You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: this issue serves solely for general discussions about the rewrite branch and it will be closed after the merge in the main branch. I'll open new issues for discussing more specific implementations soon.
Telegrand was born as a testing/experimental project to learn Rust and Gtk4, so it has a really bad design and generally some implementation choices don't help to contribute to the project (even for me). This was ok for the initial test purpose that the project had, but the increasing (and unexpected!) interest in the project pushed me to a complete rewrite of the project, guided by all the things that I learned (both from my project and also looking at other similar projects).
The main aspect of the rewrite is the use of TDLib instead of grammers for the Telegram API backend. This change will add a fairly big dependency (88 MiB on Arch) but it will allow to create a very complete Telegram client compared to grammers (which is btw also a really nice project, it's just not suitable for the aim of Telegrand). For the TDLib interface for Rust, I developed a library that it contains a basic client interface and an automatic generator that generates all the types/functions supported from TDLib.
The other big change is the use of GObjects wrappers for exposing the internal data provided by TDLib objects as GObjects properties and to bind them to the appropriate GtkWidgets. This allows us to do less widgets logic as the widgets will be automatically updated when the internal data changes.
The remaining changes are the out-of-box support for Flatpak packaging and the internationalization support. Multi-account support is also on my wish list, but I'm still not sure if I want to add support for it before the merge.
The text was updated successfully, but these errors were encountered:
Telegrand was born as a testing/experimental project to learn Rust and Gtk4, so it has a really bad design and generally some implementation choices don't help to contribute to the project (even for me). This was ok for the initial test purpose that the project had, but the increasing (and unexpected!) interest in the project pushed me to a complete rewrite of the project, guided by all the things that I learned (both from my project and also looking at other similar projects).
The main aspect of the rewrite is the use of TDLib instead of grammers for the Telegram API backend. This change will add a fairly big dependency (88 MiB on Arch) but it will allow to create a very complete Telegram client compared to grammers (which is btw also a really nice project, it's just not suitable for the aim of Telegrand). For the TDLib interface for Rust, I developed a library that it contains a basic client interface and an automatic generator that generates all the types/functions supported from TDLib.
The other big change is the use of GObjects wrappers for exposing the internal data provided by TDLib objects as GObjects properties and to bind them to the appropriate GtkWidgets. This allows us to do less widgets logic as the widgets will be automatically updated when the internal data changes.
The remaining changes are the out-of-box support for Flatpak packaging and the internationalization support. Multi-account support is also on my wish list, but I'm still not sure if I want to add support for it before the merge.
The text was updated successfully, but these errors were encountered: