Skip to content

Frequently Asked Questions (FAQ)

Radhi edited this page Jan 28, 2019 · 5 revisions

Contents

General

Why another QML binding ?

As far as I know, there are only two QML binding exist for Go: go-qml and therecipe/qt. Right now, go-qml is not actively maintained anymore, and it's not working anymore since Go 1.7. On the other hand, therecipe/qt is still actively maintained, however it uses LGPL license which make it not exactly suitable for proprietary app. So, I've decided to create a new one.

How does it compare to therecipe/qt ?

Before I've created this binding, I extensively uses therecipe/qt. This is why there are some similarities between qamel and therecipe/qt. For example, both uses similar syntax for declaring a new QML component. In qamel, it's done by embedding qamel.QmlObject while in therecipe/qt it's done by embedding quick.QQuickItem.

On the other hand, there are some differences between qamel and therecipe/qt :

  • therecipe/qt is binding for ALL Qt's modules, while qamel only binds several Qt's classes that used for creating a simple QML app, i.e. QApplication, QQuickView and QQMLApplicationEngine.
  • Because qamel only binds the small set of Qt's class, most of the time the build process will be faster than therecipe/qt.
  • In qamel, the binding code is manually written, which make the binding installation process really fast. On the other hand, in therecipe/qt the binding code is generated when you run the setup. This makes the installation time quite long, and there are no godoc available. However, this way, it could supports all Qt's modules, no matter what version of Qt that installed on your system.
  • therecipe/qt supports many deployment targets, i.e. Linux, Windows, macOS, Android, Sailfish, Ubuntu Touch, WASM, and iOS. On the other hand, qamel only supports deploying app from and to Linux and Windows. I don't have any Mac device, so I haven't test it there. However, theoretically it should work as well.
  • therecipe/qt is released under LGPL license which make it's not really suitable for proprietary app. There are plans for commercial license, but until now there are no final words from @therecipe. On the other hand, qamel is released under MIT license, which AFAIK means you can do whatever you want with this binding.

The bottom lines are :

  • If you want to create a proprietary app which only uses QML instead of all Qt's modules, qamel might be enough for you.
  • For other purposes, you might be better with therecipe/qt.

What is the status for this binding ?

This binding is still in development. However, it's quite stable and I've been used this in production for several months without problem. Your mileage may vary.

Is this binding actively maintained ?

First of all, I've created this binding for my job, so yes, it's actively maintained.

However, since I created it for the sake of the job, if the issues are not critical and doesn't affect my job or workflow, it might take a long time before I work on it. Therefore, all PRs and contributors will always be welcomed.

Operational

What are the system requirements ?

It should works on all modern PC or Notebook. Make sure OpenGL driver installed on your system, because AFAIK QML uses OpenGL to render the view.

Which version of Qt that I can use ?

This binding is already tested and confirmed works with Qt 5.11 onwards.

Contributions

How to make a contribution ?

Just like other open source projects, you can make a contribution by submitting issues or pull requests.

How to make a donation ?

If you like this project, you can donate to me via PayPal. If you don't want to donate money, but have any spare key for Linux game on Steam or GOG, I accept those as well :).