* [v2, darwin] Fix nullreference exception when dev watcher failed to start and the user stopped wails dev with ctrl-c
* [v2] Improve starting of dev watcher command
Wails dev now also fails if the dev watcher could not be started. Since
the dev watcher is used to start e.g. vite to serve the frontend, it does
not make much sense to let Wails dev be running if the dev
watcher failed to start.
* [v2] Improve killing and cleanup of debug binary
- Make sure to kill the debug process in all cases even if an error occured.
- Make sure to kill the last started binary process
* chore: use createRoot for react-ts
* chore: use createRoot for react-js
* fix: quotes
* fix: remove semi
* chore: update react templates to use createRoot instead of ReactDOM.render
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Improve theme change at runtime
* Handle change to dark mode
* Refactor theme calculation
* Ensure theme is updated for WM_ACTIVATE and WM_SETTINGCHANGE events
* [v2, windows] CompareBrowserVersions needs a int32 pointer
Otherwise 4294967295 will be returned instead of -1 and the
minimum version check can't detect an older version.
So an older version than the minimum might be used and will
result in AccessViolationExceptions.
* [v2, windows] Use the correct minimum runtime version for SDK 1.0.992.28
The Webview2Loader.dll are already at version 1.0.992.28 for all platforms.
* [v2, windows] Remove unnecessary LockOSThread
Form.Invoke makes sure the call is on the correct thread and does
lock the OSThread during the call.
* [v2, windows] Unlock OSThread after native calls have been finished
This makes sure the OSThread can be reused by other go
routines after a native call has been finished. Otherwise the
OSThread will be destroyed as soon as the goroutine has
finished.
Make sure no pointers to the stack are passed to g_idle_add,
because at the time the callback gets executed on the
main thread, the pointer might be invalid.
Go might have reused the stack or grown the stack and the
pointer is invalid.
The concept used on Windows has been ported to Linux.
For users who wish to keep the wailsjs directory out of source control, the `wails generate module` command is valuable in a CI environment where wails build does not automatically generate the needed javascript module.
- Make sure to reset the default Arch of the build options and not keep the previous one.
- Expand to the full platform in outputBinaries so e.g. `-platform windows` can be used with `-nsis`
* [website] Fix devserver default value doc
* [v2] Add support for AssetsHandler
AssetsHandler is a http.Handler delegate, which gets called
as a fallback for all Non-GET requests and for GET requests
for which the Assets didn’t find the file.
Known Limitations on Linux:
- All requests are GET requests
- No request headers
- No request body
- No response status code, only StatusOK will be returned
- No response headers
Known Limitations on Windows:
- Request body is leaking memory. Seems to be a bug in
WebView2, investigation angoing.
Most of these limitations on Linux will be fixed in the future with
adding support for Webkit2Gtk 2.36.0+.
* [v2, linux] Add response streaming support
The complete response won’t be held anymore in memory and will
be streamed to WebKit2.
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
If the window is frameless and we are minimizing, then we need to suppress
the Resize on the WebView2. If we don't do this, restoring does not work as
expected and first restores with some wrong size during the restore animation
and only fully renders when the animation is done.
This highly depends on the content in the WebView.
Possible fix for #1319
* [v2] Consolidate AssetServers
* [v2] Support starturl for webview on linux and darwin
* [v2] Add support for frontend DevServer
* [v2] Activate frontend DevServer in svelte template
* [website] Add bleeding edge guide for PRs
* DoNotMerge: Bump Version for testing
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* v2: linux: add icon to linux specific app option and load it during window creation
Signed-off-by: Martin Gysel <me@bearsh.org>
* doc: linux specific option: icon
* add support for 'DomReady' callback on linux
cosmetic: use bodyLen instead of len() in processRequest()
* reformat webViewLoadChanged() for consistency
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Initial commit
* Retry index.html every 500ms for 5s before defaulting to the default index page.
* Load all files using the same technique
* Remove reload script
Especially the File directive seems not to work with a `/` on
Windows. Whereas `\` works for all directives and on all platforms.
So the `\` in NSIS can be used also on Linux and MacOS.
* refactor(cli): optimize the template that generates the base template
* refactor: optimize the default vanilla template
* feat(cli): add script to default vanilla template
* refactor(cli): refactor default svelte template and add script
* fix: remove manually added assetdir fields
Manually specified values are removed as the application will automatically infer from embed.FS.
* fix: remove drag attribute within page
* Update v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/frontend/README.md
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* feat(website): sync documents and add content
- Add a directory to the website
- Update site navigation menu
- Update site tagline(Emphasis on cross-platform)
- Sync the changelog of the latest version to the website
* docs: remove the `appendix` directory
* Fix fatal error on otherwise clean exit.
* Fix race condition while setting title during window creation.
* Fix unexpected signal error when clicking webview should initiate a drag window operation.
* Ensure ExecuteOnMainThread callbacks are removed from the event source list on completion.
* Ensure all ExecuteOnMainThread callbacks use the expected return value on completion.
* Fix potential memory leak when exiting early from startDrag.
* Fix using runtime.WindowFullscreen on Linux ARM64.
* Fix fatal error on otherwise clean exit.
* Fix race condition while setting title during window creation.
* Fix unexpected signal error when clicking webview should initiate a drag window operation.
* Ensure ExecuteOnMainThread callbacks are removed from the event source list on completion.
* Ensure all ExecuteOnMainThread callbacks use the expected return value on completion.
* Fix potential memory leak when exiting early from startDrag.
* [v2] Add support for post build hooks
Currently only supports build-level hooks
* [v2] Improve build assets handling and use single source for manifest generation
The manifest asset files are now a go template and data will be
resolved before they are included into the build output.
Breaking Change: Windows manifest file must be named
“wails.exe.manifest” and doesn’t depend on the project name
anymore.
* [v2, windows] NSIS installer generation
Before opening a feature request, please check the [Roadmap](https://github.com/wailsapp/wails/discussions/1484) to see if it has already been requested.
***Please note: No new feature requests are being accepted for Wails v1***
- type:textarea
attributes:
label:Is your feature request related to a problem? Please describe.
description:A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required:false
- type:textarea
attributes:
label:Describe the solution you'd like
description:A clear and concise description of what you want to happen.
validations:
required:true
- type:textarea
attributes:
label:Describe alternatives you've considered
description:A clear and concise description of any alternative solutions or features you've considered.
validations:
required:false
- type:textarea
attributes:
label:Additional context
description:Add any other context or screenshots about the feature request here.
Build desktop applications using Go & Web Technologies.<br/><br/>
@@ -52,56 +52,50 @@
- [4. Features](#nav-4)
- [5. Sponsors](#nav-5)
- [6. Installation](#nav-6)
- [6.1 MacOS](#nav-6-1)
- [6.2 Linux](#nav-6-2)
- [6.2.1 Debian/Ubuntu](#nav-6-2-1)
- [6.2.2 Arch Linux / ArchLabs / Ctlos Linux](#nav-6-2-2)
- [6.2.3 Centos](#nav-6-2-3)
- [6.2.4 Fedora](#nav-6-2-4)
- [6.2.5 VoidLinux & VoidLinux-musl](#nav-6-2-5)
- [6.2.6 Gentoo](#nav-6-2-6)
- [6.3 Windows](#nav-6-3)
- [7. Usage](#nav-7)
- [7.1 Next Steps](#nav-7-1)
- [8. FAQ](#nav-8)
- [9. Contributors](#nav-9)
- [10. Special Mentions](#nav-10)
- [12. Special Thanks](#nav-11)
- [7. FAQ](#nav-8)
- [8. Contributors](#nav-9)
- [9. Special Mentions](#nav-10)
- [10. Special Thanks](#nav-11)
</details>
<span id="nav-3"></span>
## Introductions
## Introduction
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different
approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to
make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
<span id="nav-3-1"></span>
### Official v1 Website
The official v1 docs can be found at [https://wails.app](https://wails.app).
<hr/>
<h3><strong>PLEASE NOTE: As we are approaching the v2 release, we are not accepting any new feature requests or bug reports for v1. If you have a critical issue, please open a ticket and state why it is critical.</strong></h3>
<hr/>
### Version 2
Wails v2 has been released in Beta for all 3 platforms. Check out the [new website](https://wails.io) if you are
interested in trying it out.
### Legacy v1 Website
The legacy v1 docs can be found at [https://wails.app](https://wails.app).
<span id="nav-4"></span>
## Features
- Use standard Go for the backend
- Use any frontend technology to build your UI
- Quickly create Vue, Vuetify or React frontends for your Go programs
- Expose Go methods/functions to the frontend via a single bind command
-Uses native rendering engines - no embedded browser
-Shared events system
-Native file dialogs
-Powerful cli tool
- Use any frontend technology you are already familiar with to build your UI
- Quickly create rich frontends for your Go programs using pre-built templates
- Easily call Go methods from Javascript
-Auto-generated Typescript definitions for your Go structs and methods
-Native Dialogs & Menus
-Supports modern translucency and "frosted window" effects
-Unified eventing system between Go and Javascript
- Powerful cli tool to quickly generate and build your projects
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.