A C++ template of the Yue library for building cross-platform desktop apps with system webview and native GUI widgets.
- Quickly build desktop apps with HTML and JavaScript.
- Generate single-file executables for macOS/Linux/Windows.
- Source code encryptions.
- Use system webviews to minimize binary size.
- Use native GUI widgets to extend the UI.
- Extremely easy to add C++ native bindings to web pages.
- Custom protocols in webview.
- Clone the project
- Put your web app in
app/
npm install
to buildnpm start
to start the appnpm run dist
to create distribution
macOS | Linux | Windows |
---|---|---|
Public domain.
Since this project mostly serves as a template with minimal features, pull requests to add new features might be rejected.
Please consider following limitations before writing your app with Yue, some of them are impossible to solve even in future versions.
Due to using system webview, there is no way to choose browser engine or browser version, so we can not control how web page is rendered or which HTML5 features are available, thus the pain of browser compatibility.
The good news is, because Yue uses webkit2gtk
on Linux and WKWebView
on
macOS, you can at least expect modern web engines on these two platforms.
The APIs provided in Yue are also highly limited to what system APIs have, and we can only provide APIs based on existing system APIs.
While the source code of your app is encrypted with a secure algorithm, there is really nothing we can do to prevent a determined hacker to get the source code from the executable files.
On macOS and Linux, widgets of Yue are just wrappers of existing native widgets, so you have the same level of accessibility with system toolkits.
However on Windows certain widgets (for example buttons) are windowless and do not have accessibility implemented yet, while it is of high priority on my TODO list, please only use the widgets with accessibility implemented (for example webview and text editor) if this is important to you.