-
User Story
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
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.
- depends on
-
QTBUG-140028 Qt Quick for Rust: Enable role names for item models
-
- Reported
-
-
VSCODEEXT-220 Qt Quick for Rust: Make Rust a first class citizen in the Qt VS Code plugin
-
- Reported
-
-
QTBUG-140030 Qt Quick for Rust: Handle return value of qinvokables
-
- Open
-
-
QTBUG-140042 Qt Quick for Rust: Complex types for properties, slots and signals
-
- Open
-
-
QTBUG-140031 QtQuick for Rust: Check the parameters of the property macro for completeness
-
- Open
-
-
QTBUG-140027 Qt Quick for Rust: Find a solution for the internal pointer in QModelIndex
-
- In Progress
-
-
QTBUG-139447 Qt Quick for Rust: The best way to find / install / download Qt library dependencies
-
- Reported
-
-
QTBUG-139213 Qt Quick for Rust: Improve error messages
-
- Reported
-
-
QTBUG-139442 Qt Quick for Rust: Naming sanitisation and cleanup
-
- Reported
-
-
QTBUG-139220 Qt Quick for Rust: Add connect() function to rust
-
- Reported
-
-
QTBUG-139221 Qt Quick for Rust: Native installation; organize in crates; put Qt Quick for Rust to crates.io
-
- Open
-
-
QTBUG-139401 Qt Quick for Rust: Port ColorPalette Example to Rust
-
- In Progress
-
-
QTBUG-139089 Qt Quick for Rust: Spike: Rebuild implementation on top of cxx-qt-lib
-
- In Progress
-
-
QTBUG-139090 Qt Quick for Rust: add support for template/generic types
-
- In Progress
-
-
QTBUG-139097 Qt Quick for Rust: Add Qt Quick tests
-
- In Progress
-
-
QTBUG-139088 Qt Quick for Rust: implement QML_ELEMENT
-
- In Progress
-
-
QTBUG-139083 Qt Quick for Rust: implement qinvokable / qslot
-
- Closed
-
-
QTBUG-139085 Qt Quick for Rust: implement qsignal
-
- Closed
-
-
QTBUG-139087 Qt Quick for Rust: implement properties
-
- Closed
-