Skip to content

Commit 44f3cfe

Browse files
Be WilsonLeonMatthesKDAB
Be Wilson
authored andcommitted
README: add table comparing to other Qt Rust bindings
1 parent c064745 commit 44f3cfe

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,24 @@ mod ffi {
120120
}
121121
```
122122

123+
## Comparison to other Rust Qt bindings
124+
125+
| Project | Integrate into C++ codebase | Safe Rust | QML | QWidgets | Maintained<sup>1</sup> | Binding mechanism |
126+
|-------- | ---------------------------- | --------- | --- | -------- | ---------------------- | ----------------- |
127+
| CXX-Qt |||| limited<sup>2</sup> || [cxx](https://cxx.rs) plus additional code generation to implement QObject subclasses in Rust and bind them to C++ |
128+
| [qmetaobject](https://github.com/woboq/qmetaobject-rs/) |||||| [cpp](https://github.com/mystor/rust-cpp) macro to write C++ inline in Rust, plus Rust macros to create QObject subclasses from Rust structs |
129+
| [Rust Qt Binding Generator](https://invent.kde.org/sdk/rust-qt-binding-generator) |||| limited<sup>2</sup> || generates Rust traits and C++ bindings from JSON description of QObject subclass |
130+
| [rust-qt](https://rust-qt.github.io/) |||||| [ritual](https://rust-qt.github.io/ritual/) to generate unsafe Rust bindings from C++ headers |
131+
| [qml-rust](https://github.com/White-Oak/qml-rust) |||||| [DOtherSide](https://github.com/filcuc/DOtherSide) C wrapper for QML C++ classes |
132+
| [qmlrs](https://github.com/flanfly/qmlrs) |||||| own C++ library to bind QQmlApplicationEngine |
133+
| [qmlrsng](https://github.com/nbigaouette/qmlrsng) |||||| [libqmlbind](https://github.com/seanchas116/libqmlbind) with [bindgen](https://rust-lang.github.io/rust-bindgen/) |
134+
| [rust-qml](https://github.com/florianjacob/rust-qml) |||||| [libqmlbind](https://github.com/seanchas116/libqmlbind) |
135+
136+
<sup>1</sup>: maintained: supports Qt6 and repository has had nontrivial commits within last year as of August 2022
137+
138+
<sup>2</sup>: CXX-Qt and Rust Qt Binding Generator can be used to implement custom QObjects subclasses in Rust. C++
139+
bindings for these QObject subclasses can be used in QWidgets applications, but these projects do not provide Rust
140+
bindings for QWidgets APIs.
123141

124142
## Contributing to CXX-Qt
125143

0 commit comments

Comments
 (0)