muon-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +84 -0
- package/dist/build-CCuZpajl.cjs +2083 -0
- package/dist/build-CCuZpajl.cjs.map +1 -0
- package/dist/cli.cjs +122 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/index.cjs +9 -0
- package/dist/index.mjs +9 -0
- package/dist/native/linux64/muon-bootstrap +0 -0
- package/dist/native/linux64/muon-prepare +0 -0
- package/dist/native/linuxarm/muon-bootstrap +0 -0
- package/dist/native/linuxarm/muon-prepare +0 -0
- package/dist/native/linuxarm64/muon-bootstrap +0 -0
- package/dist/native/linuxarm64/muon-prepare +0 -0
- package/dist/native/windows32/muon-bootstrap.exe +0 -0
- package/dist/native/windows32/muon-prepare.exe +0 -0
- package/dist/native/windows64/muon-bootstrap.exe +0 -0
- package/dist/native/windows64/muon-prepare.exe +0 -0
- package/dist/runtime/linux64/THIRD_PARTY_NOTICES.md +223 -0
- package/dist/runtime/linux64/libcardio.so +0 -0
- package/dist/runtime/linux64/libmuon-ui.so +0 -0
- package/dist/runtime/linux64/muon-core +0 -0
- package/dist/runtime/linuxarm/THIRD_PARTY_NOTICES.md +223 -0
- package/dist/runtime/linuxarm/libcardio.so +0 -0
- package/dist/runtime/linuxarm/libmuon-ui.so +0 -0
- package/dist/runtime/linuxarm/muon-core +0 -0
- package/dist/runtime/linuxarm64/THIRD_PARTY_NOTICES.md +223 -0
- package/dist/runtime/linuxarm64/libcardio.so +0 -0
- package/dist/runtime/linuxarm64/libmuon-ui.so +0 -0
- package/dist/runtime/linuxarm64/muon-core +0 -0
- package/dist/runtime/windows32/THIRD_PARTY_NOTICES.md +223 -0
- package/dist/runtime/windows32/libcardio.dll +0 -0
- package/dist/runtime/windows32/libmuon-ui.dll +0 -0
- package/dist/runtime/windows32/muon-core.exe +0 -0
- package/dist/runtime/windows64/THIRD_PARTY_NOTICES.md +223 -0
- package/dist/runtime/windows64/libcardio.dll +0 -0
- package/dist/runtime/windows64/libmuon-ui.dll +0 -0
- package/dist/runtime/windows64/muon-core.exe +0 -0
- package/dist/vite.cjs +242 -0
- package/dist/vite.cjs.map +1 -0
- package/dist/vite.mjs +2251 -0
- package/dist/vite.mjs.map +1 -0
- package/images/muon-120.png +0 -0
- package/images/vscode.png +0 -0
- package/muon.d.ts +1039 -0
- package/package.json +91 -0
- package/vite.d.ts +98 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# muon
|
|
2
|
+
|
|
3
|
+
A multi-platform GUI application framework that uses CEF as its backend.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
[](https://www.repostatus.org/#concept)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## What is This?
|
|
13
|
+
|
|
14
|
+
WIP: This project is still in a very early prototype phase.
|
|
15
|
+
I intend to complete it, but please note that it is not yet at the stage of active implementation.
|
|
16
|
+
|
|
17
|
+
Have you ever thought about how to update an outdated native GUI application into a modern one?
|
|
18
|
+
Replacing applications is extremely complex and has always been a challenge for us.
|
|
19
|
+
|
|
20
|
+
Since the causes are so varied, there is no "magic solution" that promises, "Use this method, and it'll be easily solved!"
|
|
21
|
+
Even so, everyone wants to modernize their applications at the lowest possible cost.
|
|
22
|
+
|
|
23
|
+
muon (/ˈmjuːɒn/) is a multiplatform GUI application framework that uses CEF (Chromium Embedded Framework).
|
|
24
|
+
You’ve probably heard of several similar projects, such as [Electron](https://www.electronjs.org/).
|
|
25
|
+
|
|
26
|
+
To put it simply, muon is a framework that occupies the same niche as those projects.
|
|
27
|
+
In other words, it’s software that allows you to implement locally running GUI applications as web applications.
|
|
28
|
+
|
|
29
|
+
With muon, you can build native applications using the most advanced and widely used browser-based UI frameworks, such as React and Vue.
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
So, how does muon differ from earlier framework solutions?
|
|
34
|
+
|
|
35
|
+
It specializes in GUI application development within a local environment by using a whitelist approach (with a "deny-by-default" policy)
|
|
36
|
+
for accessing external web resources.
|
|
37
|
+
|
|
38
|
+
You might think, "It's a waste to use CEF without being able to access websites around the world!"
|
|
39
|
+
However, I believe that is precisely the biggest problem with existing solutions—they've become extremely complex and difficult to manage.
|
|
40
|
+
|
|
41
|
+
Furthermore, muon isn't completely unable to access external resources; since it uses a whitelist approach,
|
|
42
|
+
you can still access permitted websites.
|
|
43
|
+
|
|
44
|
+
It also features a plugin system that supports fully asynchronous processing, enabling interoperability with native libraries.
|
|
45
|
+
Since these features become available based on pre-configured settings, there's no risk of unused functionality running unchecked.
|
|
46
|
+
|
|
47
|
+
Since it's CEF-based, you can naturally use features expected in Chromium, such as WebGL, WebGPU, WebAssembly, Web Workers, and Local Storage.
|
|
48
|
+
You can also display Chromium DevTools. Because it supports CDP (Chrome DevTools Protocol), you can debug using tools like VS Code or connect and control it via Playwright.
|
|
49
|
+
You can also use remote DevTools from Chromium/Chrome via `chrome://inspect/`.
|
|
50
|
+
|
|
51
|
+
In short, by clearly eliminating one of the major issues that arise when migrating native GTK/Qt/Windows applications to web applications,
|
|
52
|
+
you can develop modern local GUI applications using the web-based technology ecosystem.
|
|
53
|
+
|
|
54
|
+
### Features
|
|
55
|
+
|
|
56
|
+
- By restricting all network access with a whitelist filter, you can completely block problematic content.
|
|
57
|
+
- It is provided as an easy-to-use NPM package, allowing you to easily turn your web application project into a native GUI application.
|
|
58
|
+
No complex configuration or modifications are required.
|
|
59
|
+
- The browser responsible for rendering is CEF (Chromium Embedded Framework).
|
|
60
|
+
This means that, from the perspective of your web application, it is virtually equivalent to using Chromium or Chrome.
|
|
61
|
+
- Supports Vite plugins (optional). With support for Vite’s HMR, you can update previews in real time during development.
|
|
62
|
+
- You can use Chromium DevTools. Furthermore, because it supports CDP (Chromium DevTools Protocol), you can perform remote debugging from an external source.
|
|
63
|
+
- You can display multiple browser windows. Browser windows can also be organized into a parent-child hierarchy.
|
|
64
|
+
- It features a plugin system. Additionally, plugin functionality can be restricted using a whitelist filter.
|
|
65
|
+
- Using built-in plugins, you can access local files, open dialogs, launch child processes, and manipulate windows.
|
|
66
|
+
|
|
67
|
+
### Environment
|
|
68
|
+
|
|
69
|
+
- Supports the following architectures among those supported by the official CEF binaries:
|
|
70
|
+
- Linux: amd64, armv7l, arm64
|
|
71
|
+
- Windows: i686, amd64
|
|
72
|
+
- Build Environment
|
|
73
|
+
- Node.js 20 or later
|
|
74
|
+
- Vite 7 or later (optional)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
TODO:
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
Under MIT.
|