Details
-
User Story
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
The moment a new programming language starts to get more attention from the community, it's expected that an initial set of bindings might be developed and then started to be adopted. Some languages do have a few limitations due to their nature and Qt implementation details. The first attempt was qmetaobject-rs, which was able to expose types to QML by having a similar QMetaObject structure within the Rust code (no C++ needed), however new attempts like CXX-Qt has been changing the approach and allow bidirectional integration. Supporting the usage of Qt within Rust and to extend a Qt/C++ project with Rust. Due to being more focus on extending Qt/C++ applications, a few C++-isms can be seen in the code.
Why Rust?
One cannot neglect the popularity of Rust and the different areas were its adoption is being pursued, starting from the Linux Kernel, Embedded Systems, Drivers, Tooling, etc. Additionally, other communities like Python has been benefited by the introduction of Rust-based packages in the ecosystem, which shows a good sign of the improvements the Qt project can benefit from.
How to achieve this?
Relying on more idiomatic elements to simplify the process of having a Rust backend to a Qt Quick application.