Gluon is a new framework for creating desktop apps from websites, using system installed browsers (not webviews) and NodeJS, differing a lot from other existing active projects - opening up innovation and allowing some major advantages. Instead of other similar frameworks bundling a browser like Chromium or using webviews (like Edge Webview2 on Windows), Gluon just uses system installed browsers like Chrome, Edge, Firefox, etc. Gluon supports Chromium and Firefox based browsers as the frontend, while Gluon's backend uses NodeJS to be versatile and easy to develop (also allowing easy learning from other popular frameworks like Electron by using the same-ish stack).
deno
branch and the bun
branch
gluworld
, run npm install
node .
to run it!$ git clone https://github.com/gluon-framework/examples.git
$ cd examples
$ cd gluworld
$ npm install
...
$ node .
Gluon began in December 2022 (from scratch), so is still in an early and experimental state. But it works and shows (in my opinion) potential! I am open to opinions, suggestions, feedback, ideas, etc. Currently you cannot easily test it yourself. If you're interested and want to talk to me and others about Gluon, you can join our Discord server.
Feature | Status |
---|---|
Using Chromium based browsers | Stable |
Using Firefox based browsers | Experimental |
Web-Node IPC | Stable |
Idle API | Experimental |
Using other JS runtimes (Deno/Bun) | Experimental |
Gluon has an easy to use, but powerful asynchronous IPC API. Example:
// In your website's JS
const reply = await Gluon.ipc.send('my type', { more: 'data' });
console.log(reply); // { give: 'back', different: 'stuff' }
// In your Node backend
import * as Gluon from '@gluon-framework/gluon';
const Window = await Gluon.open(...);
Window.ipc.on('my type', data => { // { more: 'data' }
return { give: 'back', different: 'stuff' };
});
Part | Gluon | Electron | Tauri | Neutralinojs |
---|---|---|---|---|
Frontend | System installed Chromium or Firefox | Self-contained Chromium | System installed webview | System installed webview |
Backend | System installed or bundled Node.JS | Self-contained Node.JS | Native (Rust) | Native (Any) |
IPC | Window object | Preload | Window object | Window object |
Status | Early in development | Production ready | Usable | Usable |
Ecosystem | Integrated | Distributed | Integrated | Integrated |
Basic (plain HTML) Hello World demo, measured on up to date Windows 10, on my machine (your experience will probably differ). Used latest stable versions of all frameworks as of 9th Dec 2022. (You shouldn't actually use random stats in benchmarks to compare frameworks, this is more so you know what Gluon is like compared to other similar projects.)
Stat | Gluon | Electron | Tauri | Neutralinojs |
---|---|---|---|---|
Build Size | <1MB[^system][^gluon][^1] | ~220MB | ~1.8MB[^system] | ~2.6MB[^system] |
Memory Usage | ~80MB[^gluon] | ~100MB | ~90MB | ~90MB |
Backend[^2] Memory Usage | ~13MB[^gluon] (Node) | ~22MB (Node) | ~3MB (Native) | ~3MB (Native) |
Build Time | ~0.7s[^3] | ~20s[^4] | ~120s[^5] | ~2s[^3][^6] |
Extra info: All HTML/CSS/JS is unminified (including Gluon). Built in release configuration. All binaries were left as compiled with common size optimizations enabled for that language, no stripping/packing done.
[^system]: Does not include system installed components. [^gluon]: Using Chrome as system browser. Early/WIP data, may change in future.
[^1]: How is Gluon so small? Since NodeJS is expected as a system installed component, it is "just" bundled and minified Node code.
[^2]: Backend like non-Web (not Chromium/WebView2/etc).
[^3]: Includes Node.JS spinup time.
[^4]: Built for win32 zip (not Squirrel) as a fairer comparison.
[^5]: Cold build (includes deps compiling) in release mode.
[^6]: Using neu build -r
.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型