7 Star 11 Fork 1

Gitee 极速下载 / Gluon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/gluon-framework/gluon
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Gluon

License: MIT NPM version GitHub Sponsors Discord

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).

Features

  • Uses normal system installed browsers - allows user choice by supporting most Chromium and Firefox based browsers, no webviews
  • Tiny bundle sizes - <1MB using system Node, <10MB when bundling it
  • Chromium and Firefox supported as browser engine, unlike any other active framework
  • Minimal and easy to use - Gluon has a simple yet powerful API to make apps with a Node backend
  • Deno and Bun support (experimental) - Support for Deno and Bun are being worked on as alternatives to NodeJS for the backend (developer choice), see the deno branch and the bun branch
  • Fast build times - Gluon has build times under 1 second on most machines for small projects
  • Actively developed and listening to feedback - new updates are coming around weekly, quickly adding unplanned requested features if liked by the community (like Firefox support!)
  • Cross-platform - Gluon works on Windows, Linux, and macOS (WIP)

Gluworld Screenshot showing Chrome Canary and Firefox Nightly being used at once.


Trying Gluon

  1. Clone the Gluon examples repo
  2. Inside of gluworld, run npm install
  3. Now do node . to run it!
Shell example
$ git clone https://github.com/gluon-framework/examples.git
$ cd examples
$ cd gluworld
$ npm install
...
$ node .

Status

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.

Specific feature statuses

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

Ecosystem

  • Gluon: the Gluon framework (NodeJS)
  • Glugun: builds Gluon apps into releasable builds with optional bundling (soon)

Apps

  • Gluworld: Hello World demo app with version info shown
  • Gludoom: Doom running as WASM, made into a native looking app with Gluon
  • Glucord: minimal desktop Discord client loading official webapp (demo/example)

IPC API

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' };
});

Comparisons

Internals

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

Benchmark / Stats

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.

MIT License Copyright (c) 2022 Gluon Framework Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Gluon 是用于开发桌面应用的框架,基于系统已安装的浏览器(非 webviews)和 Node.js 进行构建,可作为 Electron 的替代方案 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/mirrors/gluon-framework1.git
git@gitee.com:mirrors/gluon-framework1.git
mirrors
gluon-framework1
Gluon
main

搜索帮助