
Announcing React/NodeGUI – Build Native Desktop Apps with JavaScript and CSS - atulanand94
https://blog.atulr.com/nodegui-intro/
======
jdauriemma
TIL:

> NodeGUI is powered by Qt5 green_heart which makes it CPU and memory
> efficient as compared to other chromium based solutions like electron.

I can't tell you how happy this makes me

~~~
atulanand94
Haha happy to hear :)

------
hexrcs
> Note: Since we do not in any way modify the code of Qt and only link to it
> dynamically, I beleive we are in compliance with the LGPL license
> requirements of QT. And hence this library can be licensed under its own
> License (for which we have chosen MIT License). The links to QT source code
> and appropriate license notices are attached. We try our best to abide by
> the software licenses and any non compliance is not by will. If there is
> some discrepancy please let us know in the issues and we will try and fix it
> up. If you follow the recommended build steps and do not statically link QT
> libraries on your own you are safe to use this library for commerical
> puropses (provided you abide by MIT License).

Anyone familiar with licensing, is the author's note here correct, and can we
use NodeGUI just like any other MIT libraries, eg. bundling the GUI part for
distribution?

~~~
rvz
Yes with some exceptions:

1\. To use it in a closed-sourced application you have to keep the Qt
libraries dynamically linked and bundled with the application. The license is
fine as long as it is dynamically linked.

Example:
[https://github.com/gitahead/gitahead](https://github.com/gitahead/gitahead)
Used to be closed-source and uses Qt5. Now it is open-source and is under the
MIT license.

2\. Static linking however requires you to either purchase a commercial
license or you release your source under GPL-3.0 and then you can statically
link your app.

No. 1 is probably what you are after.

------
ausjke
[https://doc.qt.io/qt-5/topics-web-
content.html](https://doc.qt.io/qt-5/topics-web-content.html) why not directly
use Qt5 and its js/css functionalities, is this basically wrapping Qt5 c++ API
via nodejs N-API so we can develop in typescript instead of c++?

I wish there is a light-weight html-css-engine written in C/c++ that we can
all use cross-platform for desktop GUIs, chromium is really for browsers,
which is too heavy for many GUIs on desktop

------
rvz
Finally, this alternative addresses the eternal problems that has plagued
electron with criticism for years.

Cross-Platform, Native, Consistent and efficient in both CPU time and memory
consumption whilst applying the React styling into Desktop apps. Not spawning
a instance of a full web browser.

To compete with Electron, some sort of migration path is needed here.

~~~
atulanand94
Yeah, I see it as similar to how we transitioned from

Cordova ---> React Native for mobile app dev

Electron ---> NodeGUI for Desktop apps

