Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
417 KiB
Changelog
[2.9.5]
Bug Fixes
251203b89(#14637 by @Legend-Master) FixMonitor::work_areareturns logical position and size inside thePhysicalRecton Linux
Dependencies
- Upgraded to
tauri-runtime-wry@2.9.3
[2.9.4]
Performance Improvements
ce98d87ce(#14474 by @Tunglies) refactor: remove needless collect. No user facing changes.ee3cc4a91(#14475 by @Tunglies) perf: remove needless clones in various files for improved performance. No user facing changes.
Dependencies
- Upgraded to
tauri-utils@2.8.1 - Upgraded to
tauri-runtime@2.9.2 - Upgraded to
tauri-runtime-wry@2.9.2 - Upgraded to
tauri-macros@2.5.2 - Upgraded to
tauri-build@2.5.3
[2.9.3]
Bug Fixes
4b00130b8(#14385 by @lucasfernog) Fix iOS deadlock when running on the simulator from Xcode by properly piping stdout/stderr messages through the Xcode console and OSLog.
Dependencies
- Upgraded to
tauri-macros@2.5.1 - Upgraded to
tauri-build@2.5.2
[2.9.2]
Bug Fixes
28b9e7c7b(#14377 by @Legend-Master) Fixundefined is not an object (evaluating '[callbackId, data]')error on custom protocol IPC fails
[2.9.1]
Bug Fixes
4b6b8690a(#14347 by @FabianLars) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Dependencies
- Upgraded to
tauri-build@2.5.1 - Upgraded to
tauri-runtime@2.9.1 - Upgraded to
tauri-runtime-wry@2.9.1
[2.9.0]
New Features
f5851ee00(#14089) Adds thescroll_bar_styleoption to the Webview and WebviewWindow builders. The possible values for this option are gated behind conditional compilation flags, and will need to be applied using conditional compilation if customised.3397fd9bf(#14133) Added mobile app plugin to support exit and back button press event.68cb31897(#14328) AddedonStop,onDestroy,onRestart,onConfigurationChangedAndroid plugin hooks.2e089f6ac(#14148) Support async Swift plugin methods (completionHandler:) in PluginManager
Bug Fixes
006d59283(#14260) Properly deserialize Android plugin args with key starting withis(previously treated as a getter instead of a field name).69476d8e2(#14170) Fix the stack overflow when having too many commands in a single invoke handler in release build
Dependencies
- Upgraded to
tauri-utils@2.8.0 - Upgraded to
tauri-runtime-wry@2.9.0 - Upgraded to
tauri-runtime@2.9.0 - Upgraded to
tauri-build@2.5.0 - Upgraded to
tauri-macros@2.5.0
[2.8.5]
Enhancements
07e134f70(#14107 by @lucasfernog) Improve error message for request errors on iOS when local network permission has been denied and the app tries to reach the development server.
Dependencies
- Upgraded to
tauri-build@2.4.1
[2.8.4]
Bug Fixes
03e7c1193(#14080 by @lucasfernog) Ignore initial navigation toabout:blanksoon_new_windowdoes not give a warning on first navigation on macOS.
Dependencies
- Upgraded to
tauri-runtime-wry@2.8.1
[2.8.3]
Bug Fixes
534998406(#14054 by @FabianLars) Fixed an issue that caused the runtime WebView2 detection to fail for FixedRuntime installations.
[2.8.2]
Bug Fixes
5075b67d3(#14039 by @lucasfernog) Fix compilation when thewryCargo feature is disabled.
[2.8.1]
Bug Fixes
902727MoveWebviewWindowBuilder::with_related_viewbehind thewryfeature flag.
[2.8.0]
New Features
68874c68c(#13564 by @robertrpf) Add window focusable attribute and set_focusable API.22d6bcacb(#14008 by @WSH032) ImplementApp::set_device_event_filterforAppHandlealso.d6d5f3707(#13358 by @lucasfernog) Load root certificate from CLI-set environment variable and use it on the mobile dev server proxy.33d0b3f0c(#13876 by @thlstsul) AddedWebviewBuilder::on_document_title_changedandWebviewWindowBuilder::on_document_title_changed.33d0b3f0c(#13876 by @thlstsul) AddedWebviewBuilder::on_new_windowandWebviewWindowBuilder::on_new_window.7c2eb31c8(#13895 by @ahqsoftwares) IntroducesPluginHandle::run_mobile_plugin_asyncas an async alternative torun_mobile_plugindfadcb764(#13661 by @WSH032) AddedWebview::set_cookie(),Webview::delete_cookie(),WebviewWindow::set_cookie()andWebviewWindow::delete_cookie().5110a762e(#13830 by @Sky-walkerX) AddedWindow::set_simple_fullscreen.
Enhancements
-
7261a1436(#14012 by @WSH032) ImplementedWebview::on_webview_eventforWebviewWindowas well -
0e6b5cbe5(#14009 by @WSH032) re-exportPixelUnit,PhysicalUnit,LogicalUnit -
a3dc42477(#14013 by @WSH032) exportTitleBarStylefor all platforms. -
f1232671a(#13959 by @petersamokhin) Introducewith_inner_tray_iconfor TauriTrayIconto access the inner platform-specific tray icon.Note that
tray-iconcrate may be updated in minor releases of Tauri. Therefore, it’s recommended to pin Tauri to at least a minor version when you’re usingwith_inner_tray_icon. -
72b4226ee(#13809 by @Beanow) ReducedDebugformat size for binary buffers. -
21ebc6e82(#14007 by @WSH032) Changed the parameter type ofAppHandle::remove_pluginfrom&'static strto&str. -
5ba1c3faa(#13722 by @s00d) Added icon (icon and nativeIcon) support for Submenu:- In the Rust API (
tauri), you can now set an icon for submenus via the builder and dedicated methods. - In the JS/TS API (
@tauri-apps/api),SubmenuOptionsnow has aniconfield, and theSubmenuclass providessetIconandsetNativeIconmethods. - Usage examples are added to the documentation and demo app.
This is a backwards-compatible feature. Submenus can now display icons just like regular menu items.
- In the Rust API (
Dependencies
- Upgraded to
tauri-utils@2.7.0 - Upgraded to
tauri-runtime-wry@2.8.0 - Upgraded to
tauri-runtime@2.8.0 - Upgraded to
tauri-macros@2.3.3 - Upgraded to
tauri-build@2.3.2
[2.7.0]
New Features
7bc77a038(#13609 by @Legend-Master) Addedtauri::plugin::Builder::js_init_script_on_all_framesthat allows plugins to add initialization scripts that runs on all frames
Enhancements
7f3c98911(#13837 by @WSH032) AddAppHandle::plugin_boxedandBuilder::plugin_boxedmethods to allow adding plugins in the form of boxed trait objects.7bc77a038(#13609 by @Legend-Master)tauri::plugin::Builder::js_init_scriptnow takesimpl Into<String>instead ofString
Bug Fixes
6a4451bcd(#13849 by @Legend-Master) Fix isolation pattern creates iframes within iframes on Windows4ba871c5d(#13782 by @lucasfernog) Fixes loading external URLs in mobile development mode.1c5df96fe(#13773 by @tasgon) Forward request body on the mobile frontend proxy.
Dependencies
- Upgraded to
tauri-runtime-wry@2.7.2 - Upgraded to
tauri-utils@2.6.0 - Upgraded to
tauri-runtime@2.7.1 - Upgraded to
tauri-macros@2.3.2 - Upgraded to
tauri-build@2.3.1
[2.6.2]
Dependencies
- Upgraded to
tauri-runtime-wry@2.7.1
[2.6.1]
Bug Fixes
5bbcaaec8(#13707 by @Legend-Master) Fix a regression that the JavaScript API can no longer set menus and icons for tray icons
Dependencies
- Upgraded to
tauri-macros@2.3.1
[2.6.0]
New Features
50ebddaa2(#13319 by @kingsword09) Expose thesetAutoResizeAPI for webviews in@tauri-apps/api.267368fd4(#13276 by @amrbashir) AddMonitor::work_areagetter267368fd4(#13276 by @amrbashir) Addedtauri::PhysicalRectandtauri::LogicalRecttypes.09c19932d(#13304 by @39zde) Adds the option to configure the HTTPService-Worker-Allowedresponse header inapp > security > headers9c16eefa3(#13629 by @sftse) Addedx11Cargo feature (enabled by default). Disabling it is useful for apps that only support Wayland, reducing its size. NOTE: When manually disabling tauri default features, you must enable thex11feature to support it.
Enhancements
96ecfca42(#13406 by @amrbashir) Check if the webview runtime is accessible when creating a webview, returning an error if it doesn't.
Bug Fixes
94b77b36e(#13288 by @oscartbeaumont) Prevent the JavaScript runtime crashing when channel events fire in a webview that no longer has callbacks for the channel.bc2f0e48a(#13401 by @oscartbeaumont) fix(macOS): caculation for work areadfacb656d(#13360 by @velocitysystems) Fixes multiple event listeners registration for iOS plugins.23b9da75b(#13324 by @kingsword09) Fixed path joining behavior wherepath.join('', 'a')incorrectly returns "/a" instead of "a".638804e9c(#13423 by @kingsword09) Fixed set_window_effects not runs on main thread in WindowBuilder.039f44b7b(#13307 by @lucasfernog) FixTrayIcon.getByIdreturning a new resource ID instead of reusing a previously created id fromTrayIcon.new.76cbeef20(#13278 by @situ2001) Fix JavaScript APIWebview.proxyUrlhad no effect when used in theWebviewconstructorb985eaf0a(#13306 by @lucasfernog) Immediately unregister event listener when the unlisten function is called.
Performance Improvements
6a39f4999(#13464 by @Legend-Master) Use dynamic dispatch for async commands in dev, this should speed up the compilation time by quite a bit, and significantly reduces the incremental compilation time
What's Changed
168629646(#13418 by @Legend-Master) Put dynamic ACL into a featuredynamic-acl, this is currently enabled by default to align with the previous behaviors, you can disable it throughdefault-features = falseto reduce the final binary size by not including the ACL referencesb5c549d18(#13325 by @Legend-Master)transformCallbacknow registers the callbacks insidewindow.__TAURI_INTERNALS__.callbacksinstead of directly onwindow['_{id}']
Dependencies
- Upgraded to
tauri-utils@2.5.0 - Upgraded to
tauri-runtime-wry@2.7.0 - Upgraded to
tauri-macros@2.3.0 - Upgraded to
tauri-build@2.3.0 - Upgraded to
tauri-runtime@2.7.0 9c16eefa3(#13629 by @sftse) Updated tao to 0.34, wry to 0.52 and webview2-com to 0.38.
Breaking Changes
b7cdb3b39(#13410 by @Legend-Master) Feature gated the HTML manipulation code intauri-utilsbehined a flag to reduce compile time
[2.5.1]
Enhancements
31becbd1d(#13269 by @amrbashir) Respectdata-tauri-drag-region="false", it will no longer start dragging. This is useful when binding the attribute to a state using React, or another framework.
Bug Fixes
da2a6ae5e(#13268 by @Legend-Master) Fix a regression that made the raw type messages received fromChannel.onmessagebecamenumber[]instead ofArrayBufferwhen that message is small85b191252(#13241 by @Legend-Master) Maketauri-runtime-wryoptional even with features likemacos-private-api
[2.5.0]
New Features
-
dd4f13ce4(#13185) MacOS: Addset_dock_visibilitymethod to support setting the visibility of the application in the dock. -
8cf662e34(#13076) - add API to run initialization scripts on all frames -WebviewBuilder::initialization_script_on_all_frames-WebviewWindowBuilder::initialization_script_on_all_frames-WebviewAttributes::initialization_script_on_all_frames -
ea36294cb(#13208) AddedWebviewWindowBuilder::with_input_accessory_view_builderandWebviewBuilder::with_input_accessory_view_builderon iOS. -
c1cd0a2dd(#13090) macOS/iOS: add option to disable or enable link previews when building a webview (the webkit api has it enabled by default)WebViewBuilder.allow_link_preview(allow_link_preview: bool)WebviewWindowBuilder.allow_link_preview(allow_link_preview: bool)
-
b072e2b29(#9687) AddpreventOverflowconfig option to prevent the window from overflowing the monitor size on creation -
b072e2b29(#9687) AddWindowBuilder::prevent_overflow,WebviewWindowBuilder::prevent_overflow,WindowBuilder::prevent_overflow_with_marginandWebviewWindowBuilder::prevent_overflow_with_marginAPIs to prevent the window from overflowing the monitor size on creation.
Enhancements
9356fa15d(#13239) Enhance panic message when fetching unmanaged state.ebd3dcb92(#13135)Webview::evalandWebviewWindow::evalnow takesimpl Into<String>instead of&strto allow passing the scripts more flexible and efficientlyfbd57a1af(#13175)Builder::invoke_systemtakesAsRef<str>now
Bug Fixes
66e6325f4(#13136) FixChannel's callback attached towindownever cleaned up0d39ff6b0(#13150) Fix missingcore:in referenced commands in ACL error message690146e31(#13217) Fix large number of commands with large structs as parameters causing stack overflow on debug build on Windowsf888502fd(#13227)invokewill now properly throw whenoptions.headerscontains non-ascii characters instead of silently replacing themf888502fd(#13227) Fixinvokeignores the headers option if it's anHeadersb8c0d7e40(#13040) Fixrun_returnnot responding torestartandrequest_restart
Performance Improvements
66e6325f4(#13136) ImproveChannel's performance when sending small amount of data (e.g. sending a number)
Dependencies
- Upgraded to
tauri-utils@2.4.0 - Upgraded to
tauri-runtime@2.6.0 - Upgraded to
tauri-runtime-wry@2.6.0 - Upgraded to
tauri-macros@2.2.0 - Upgraded to
tauri-build@2.2.0 bb5faa21f(#13163) Update webview2-com to 0.37.bb5faa21f(#13163) Update windows to 0.61.
Breaking Changes
fca5154e7(#13130) Removed re-exportedWebviewAttributesfromtauri-runtimewhich is exposed by accident intauriand not used by any public facing APIs
[2.4.1]
Enhancements
a851b6597(#13057 by @Legend-Master) Enhanced the description of generated docs and schema for permission sets to include list of permissions within.
Dependencies
- Upgraded to
tauri-utils@2.3.1 - Upgraded to
tauri-runtime@2.5.1 - Upgraded to
tauri-runtime-wry@2.5.1 - Upgraded to
tauri-macros@2.1.1 - Upgraded to
tauri-build@2.1.1
[2.4.0]
New Features
-
be2e6b85f(#12944 by @Simon-Laux) addWindow.is_always_on_top()andWebviewWindow.is_always_on_top() -
c10802425(#12710 by @WSH032) deriveClonefortauri::ExitRequestApi. -
cedb24d49(#12665 by @charrondev) AddedWebview::cookies(),Webview::cookies_for_url(),WebviewWindow::cookies()andWebview::cookies_for_url(). -
20c190691(#12821 by @Simon-Laux) AddWebviewBuilder.disable_javascriptandWebviewWindowBuilder.disable_javascriptapi to disable JavaScript. -
060de5bbd(#12837 by @niladrix719) AddedgetIdentifier()function to get the application identifier configured in tauri.conf.json -
658e5f5d1(#12668 by @thomaseizinger) AddApp::run_returnfunction. Contrary toApp::run, this will not exit the process but instead return the requested exit-code. This allows the host app to perform further cleanup after Tauri has exited.App::run_returnis not available on iOS and fallbacks to the regularApp::runfunctionality.The
App::run_iterationfunction is deprecated as part of this because calling it in a loop - as suggested by the name - will cause a busy-loop. -
5591a4f0b(#12912 by @Daedaluz) Change webview zoom on mousewheel when thezoom_hotkeys_enabledconfiguration is set totrue. -
bcdd51025(#13012 by @lucasfernog) Thepathbasename and extname APIs now accept Android content URIs, such as the paths returned by the dialog plugin. -
bcdd51025(#13012 by @lucasfernog) AddedPathResolver::file_nameto resolve file names from content URIs on Android (leveratingstd::path::Path::file_nameon other platforms). -
c698a6d6f(#12818 by @Simon-Laux) feat: addWebview.reloadandWebviewWindow.reload -
013f8f652(#12890 by @Legend-Master) Addedbuild > removeUnusedCommandsto trigger the build scripts and macros to remove unused commands based on the capabilities you defined. Note this won't be accounting for dynamically added ACLs so make sure to check it when using this. -
35018eed0(#12996 by @Legend-Master) IntroduceAppHandle::request_restart()as an alternative toAppHandle::restart()to trigger exit event reliably -
30f5a1553(#12366 by @FabianLars) AddedWebviewWindowBuilder::traffic_light_positionto set the traffic light buttons position on macOS. -
30f5a1553(#12366 by @FabianLars) AddedtrafficLightPositionwindow configuration to set the traffic light buttons position on macOS.
Enhancements
55ffa23c9(#12855 by @lucasfernog) Fix docs.rs build for mobile targets.f2c94aaca(#12682 by @lucasfernog) AddPlugin#startIntentSenderForResultAndroid API for mobile plugins.
Bug Fixes
755533c51(#12876 by @amrbashir) RemovedTSend: Clonerequirement forChannel<TSend>by implementingClonemanually instead of driving it.f98598817(#12870 by @lucasfernog) Update path plugin to use older dataDir API on SDK < 24.f67a4a6bf(#12971 by @WofWca) Fixtauri::AssetResolver::getandtauri::AssetResolver::get_for_schemeskipping the first character of thepatheven if it's not a slash (/).dc90cd391(#12911 by @Daedaluz) Listen forCtrl +orCmd +to support zoom functionality in swedish keyboard layouts.b05f82d35(#12313 by @anatawa12)AppHandle::restart()now waits forRunEvent::Exitto be delivered before restarting the application.
Performance Improvements
1cd8f55ee(#13033 by @Legend-Master) Don't ship globalbundle.global.jsifapp > withGlobalTauriis set to false
Dependencies
- Upgraded to
tauri-runtime@2.5.0 - Upgraded to
tauri-runtime-wry@2.5.0 - Upgraded to
tauri-utils@2.3.0 - Upgraded to
tauri-build@2.1.0 - Upgraded to
tauri-macros@2.1.0
[2.3.1]
Bug Fixes
4f26dcf30(#12833 by @Legend-Master) Fix OS webviews (webview2andwebkit2gtk) are always compiled with tauri even withoutwryfeaturee103e87f1(#12848 by @amrbashir) Fix crash on Windows because of missing functions on older Windows systems, regression in 2.3.0
Dependencies
- Upgraded to
tauri-runtime-wry@2.4.1
[2.3.0]
New Features
abdd55807(#12460 by @WSH032) Addemit_str*methods toEmittertrait to allow emitting JSON serialized data directly.7d8252679(#12701 by @WSH032) Exportstruct tauri::ExitRequestApi.
Enhancements
a2d36b8c3(#12181 by @bastiankistner) Add an option to change the default background throttling policy (currently for WebKit only).e9c9c4d6f(#12529 by @amrbashir) DeriveCloneforPathResolverstruct.385a41dea(#12817 by @amrbashir) On Windows, undecorated window with shadows, now have native resize handles outside of the window client area.d6520a21c(#12541 by @FabianLars) Updatedwryto 0.50,windowsto 0.60,webview2-comto 0.36, andobjc2to 0.6. This can be a breaking change if you use thewith_webviewAPI!
Bug Fixes
d7b998fe7(#12723 by @WSH032) DeprecateManager::unmanageto fixuse-after-freeunsoundness, see tauri-apps/tauri#12721 for details.3dbcbe768(#12461 by @WSH032)Webview::navigateandWebviewWindow::navigateborrows&selfinstead of unnecessarily borrowing&mut self.
Dependencies
- Upgraded to
tauri-runtime@2.4.0 - Upgraded to
tauri-runtime-wry@2.4.0 - Upgraded to
tauri-utils@2.2.0 - Upgraded to
tauri-macros@2.0.5 - Upgraded to
tauri-build@2.0.6
[2.2.5]
Bug Fixes
477e9c049(#12514 by @FabianLars) Fixed an issue that caused iOS apps to panic when using an async function fortauri::mobile_entry_point.
[2.2.4]
Bug Fixes
27096cdc0(#12445 by @FabianLars) Fixed an issue that caused Tauri's CLI to enable tauri'snative-tlsfeature even though it wasn't needed. Movedreqwestto a mobile-only dependency intauriand enabled itsrustls-tlsfeature flag.
[2.2.3]
Bug Fixes
d2c8f0eb5(#12424 by @mattyg) Ensure that tauri's builtin initialization scripts and plugin initialization scripts are executed before any user-added initialization scripts in a webview.
[2.2.2]
Bug Fixes
61e69db9e(#12376 by @FabianLars) Widenspectaversion range to^2.0.0-rc.16again.
[2.2.1]
Bug Fixes
cd1d026f9(#11961 by @Legend-Master) Fix tauri fails to build if the project path contains glob characters
Dependencies
- Upgraded to
tauri-build@2.0.5
[2.2.0]
New Features
-
f884bae75(#11742 by @amrbashir) Addtauri::Builder::on_tray_icon_eventhandler. -
5188c0fae(#11767 by @FabianLars) AddedScope::is_forbiddento check if a path was explicitly forbidden. -
18bd639f6(#11798 by @lars-berger) AddWebviewWindowBuilder/WebviewBuilder::data_store_identifieron macOS. -
dc4d79477(#11628 by @SpikeHD) AddWebviewWindowBuilder/WebviewBuilder::extensions_pathon Linux and Windows. -
020ea0556(#11661 by @ahqsoftwares) Add badging APIs:Window/WebviewWindow::set_badge_countfor Linux, macOS and IOS.Window/WebviewWindow::set_overlay_iconfor Windows Only.Window/WebviewWindow::set_badge_labelfor macOS Only.
-
fc30b20be(#11726 by @amrbashir) AddTrayIconBuilder::show_menu_on_left_clickmethod and deprecateTrayIconBuilder::menu_on_left_clickfor consistent naming and clarity.
Enhancements
d86aaccb0(#11729 by @sandercox) Add support forTrayIconBuilder::menu_on_left_clickandTrayIcon::set_show_menu_on_left_clickon Windows.b0ddee899(#12101 by @renovate) Breaking change: Updatedwebview2-comto0.34. This may be a breaking change if you use thewith_webviewmethod.
Bug Fixes
b50a1ac0e(#11850 by @FabianLars) Add webview and window color setters to autogenerated permissions.ba6f37014(#11785 by @lars-berger) Fix panic when a plugin command is run with a capability added at runtime (viaManager::add_capability).e349dfe57(#12000 by @stringhandler) Fixed a panic caused by an assert when the resource random id has been used already.46935212b(#11658 by @Legend-Master) Fix.json5capability files not recognized even withconfig-json5feature enabledb37741da6(#11871 by @johncarmack1984) Fixspecta-utildependency not found error when usingspectafeatureca7f025fd(#11958 by @amrbashir) Fix panic when invoking a command with an unmanaged state, an error will be returned instead.
Dependencies
- Upgraded to
tauri-runtime@2.3.0 - Upgraded to
tauri-runtime-wry@2.3.0 - Upgraded to
tauri-utils@2.1.1 - Upgraded to
tauri-macros@2.0.4 - Upgraded to
tauri-build@2.0.4
[2.1.1]
Bug Fixes
e8a50f6d7(#11645) Fix integer values ofBasDirectory.HomeandBaseDirectory.Fontregression which broke path APIs in JS.
[2.1.0]
New Features
-
fabc2f283(#11485 by @39zde) Adds a new configuration optionapp > security > headersto define headers that will be added to every http response from tauri to the web view. This doesn't include IPC messages and error responses. -
8036c78e0(#11455 by @amrbashir) AddPathResolver::home_dir()method on Android. -
5c4b83084(#11191 by @amrbashir) Improved support fordpimodule types to allow these types to be used without manual conversions withinvoke:- Added
SERIALIZE_TO_IPC_FNconst incoremodule which can be used to implement custom IPC serialization for types passed toinvoke. - Added
SizeandPositionclasses indpimodule. - Implementd
SERIALIZE_TO_IPC_FNmethod onPhysicalSize,PhysicalPosition,LogicalSizeandLogicalPositionto convert it into a valid IPC-compatible value that can be deserialized correctly on the Rust side into its equivalent struct.
- Added
-
4d545ab3c(#11486 by @amrbashir) AddedWindow::set_background_colorandWindowBuilder::background_color. -
cbc095ec5(#11451 by @amrbashir) Addapp > windows > devtoolsconfig option and when creating the webview from JS, to enable or disable devtools for a specific webview. -
f0da0bde8(#11439 by @lucasfernog) AddedWebviewWindow::resolve_command_scopeto check a command scope at runtime. -
`` Detect if
SERIALIZE_TO_IPC_FN, const from the JScoremodule, is implemented on objects when serializing over IPC and use it. -
f37e97d41(#11477 by @amrbashir) Addapp > windows > useHttpsSchemeconfig option to choose whether the custom protocols should usehttps://<scheme>.localhostinstead of the defaulthttp://<scheme>.localhoston Windows and Android -
f37e97d41(#11477 by @amrbashir) AddWebviewWindowBuilder/WebviewBuilder::use_https_schemeto choose whether the custom protocols should usehttps://<scheme>.localhostinstead of the defaulthttp://<scheme>.localhoston Windows and Android -
cbc095ec5(#11451 by @amrbashir) AddWebviewWindowBuilder::devtoolsandWebviewBuilder::devtoolsto enable or disable devtools for a specific webview. -
129414faa(#11569 by @amrbashir) AddWebviewBuilder::focusedmethod to choose whether to focus webview or not on creation. -
2a75c64b5(#11469 by @amrbashir) Addedapp > windows > windowClassnameconfig option to specify the name of the window class on Windows. -
2a75c64b5(#11469 by @amrbashir) AddedWindowBuilder/WebviewWindowBuilder::window_classnamemethod to specify the name of the window class on Windows.
Enhancements
17c6952ae(#11522 by @amrbashir) Enhance the error message when usingasynccommands with a reference.c33bbf457(#11575 by @kornelski) Include the path in ACL I/O errors.
Bug Fixes
229d7f8e2(#11616 by @amrbashir) Fix regression in creating child webviews on macOS and Windows, covering the whole window.8c6d1e8e6(#11401 by @amrbashir) FixApp/AppHandle/Window/Webview/WebviewWindow::cursor_positiongetter method failing on Linux withGDK may only be used from the main thread.f8994b214(#11581 by @Mikkel-T) Fix listeners created withEventTarget::AnyLabelnever receiving events.4191a7a53(#11583 by @amrbashir) Fix tray events not fired for tray icons created inside an async command.129414faa(#11569 by @amrbashir) Fix webview not focused by default.
Dependencies
- Upgraded to
tauri-utils@2.1.0 - Upgraded to
tauri-runtime@2.2.0 - Upgraded to
tauri-runtime-wry@2.2.0 - Upgraded to
tauri-macros@2.0.3 - Upgraded to
tauri-build@2.0.3
[2.0.6]
Dependencies
- Upgraded to
tauri-utils@2.0.2
[2.0.5]
New Features
6cd917c22(#11390 by @amrbashir) Add new methods ontauri::menu::MenuBuilderandtauri::menu::SubmenuBuilderto create predefined menu item with specific text.
Enhancements
eb61d44f9(#11398 by @lucasfernog) Fallback to the Window and AppHandle resource table when closing a resource by ID.
Bug Fixes
What's Changed
2e88633ba(#11369 by @lucasfernog) Remove references to no longer used__TAURI_INTERNALS__.metadata.windowsand__TAURI_INTERNALS__.metadata.webviews.
[2.0.4]
New Features
bcf279278(#11354) On Windows, AddContextMenu::hpopupmenumethod to get theHMENUused for popups and tray icon menu.
Enhancements
e3b09be7f(#11362) AddedBuilder::channel_interceptorto intercept messages to be sent to the frontend, complemeting theBuilder::invoke_systeminterface.3cb73d08c(#11355) Mark the event commands as async so they do not block the main thread.
Bug Fixes
f3f521f03(#11348) FixTAURI_ANDROID_PACKAGE_UNESCAPED not setpanic during compilation for Android when using an older tauri cli.
Dependencies
- Upgraded to
tauri-runtime-wry@2.1.1
[2.0.3]
New Features
1d3f51e10(#11228 by @amrbashir) Addtauri::Builder::on_menu_event.
Bug Fixes
d609bef9f(#11314 by @amrbashir) Fix android invalid proguard file when using anidentifierthat contains a component that is a reserved kotlin keyword, likein,class, etc04fd3a7db(#11264 by @chrox) Respond with empty body forHEADrequests toassetprotocol4731f0cf3(#11290 by @lucasfernog) Export theipc::Invokestruct.2d087ee4b(#11268 by @amrbashir) On Linux, fix commands, that useWebvieworWebviewWindowas an argument, receiving an incorrect webview when using multi webviews.2d087ee4b(#11268 by @amrbashir) On Linux, fix events only emitted to first webview only when using multi webviews.2d087ee4b(#11268 by @amrbashir) On Linux, fix custom protocols receiving an incorrect webview label when using multi webviews
Dependencies
- Upgraded to
tauri-runtime@2.1.0 - Upgraded to
tauri-runtime-wry@2.1.0
[2.0.2]
Enhancements
03e759042(#11235 by @lucasfernog) AddedApp::invoke_keyandAppHandle::invoke_keyfor custom invoke systems that rely on manualWebview::on_messagecalls.
[2.0.1]
What's Changed
0ab2b3306(#11205 by @lucasfernog) Downgrade MSRV to 1.77.2 to support Windows 7.
Dependencies
- Upgraded to
tauri-utils@2.0.1 - Upgraded to
tauri-runtime@2.0.1 - Upgraded to
tauri-runtime-wry@2.0.1 - Upgraded to
tauri-macros@2.0.1 - Upgraded to
tauri-build@2.0.1
[2.0.0]
What's Changed
Dependencies
- Upgraded to
tauri-utils@2.0.0 - Upgraded to
tauri-runtime@2.0.0 - Upgraded to
tauri-runtime-wry@2.0.0 - Upgraded to
tauri-macros@2.0.0 - Upgraded to
tauri-build@2.0.0
[2.0.0-rc.17]
Breaking Changes
-
354be36d4(#11163 by @amrbashir) Changed uri scheme protocol handler to takeUriSchemeContextas first argument instead ofAppHandle.UriSchemeContextcan be used to access an app handle or the webview label that made the request. The following methods are affected:tauri::Builder::register_uri_scheme_protocoltauri::Builder::register_asynchronous_uri_scheme_protocoltauri::plugin::Builder::register_uri_scheme_protocoltauri::plugin::Builder::register_asynchronous_uri_scheme_protocol
[2.0.0-rc.16]
New Features
a247170e1(#11056 by @SpikeHD) Expose the ability to enabled browser extensions in WebView2 on Windows.9014a3f17(#11066 by @amrbashir) AddWebviewWindow::clear_all_browsing_dataandWebview::clear_all_browsing_datato clear the webview browsing data.0ddfc59d6(#11071 by @amrbashir) AddManager::unmanageto remove previously managed state.1d8b67b29(#11162 by @amrbashir) Support async functions formobile_entry_pointmacro5621174b0(#11132 by @chippers) AddScopeObjectMatchfor easy scope validation those that can be represented by a boolean return value.95df53a2e(#11143 by @Legend-Master) Add the ability to set theme dynamically usingWindow::set_theme,App::set_themed9d2502b4(#11140 by @amrbashir) AddWebview::hideandWebview::showmethods.de7414aab(#11154 by @amrbashir) AddWindow::set_enabledandWindow::is_enabledmethods
Bug Fixes
948772a65(#11114 by @lucasfernog) Change thebutton_statetray event field to camelCasebuttonState.a49fc999f(#11161 by @amrbashir) Fix internal crash when trying to close the same window multiple times.62b3a5cd1(#11043 by @amrbashir) FixlocalStoragenot shared between webviews that use the same data directory.
Dependencies
- Upgraded to
tauri-runtime-wry@2.0.0-rc.14 - Upgraded to
tauri-runtime@2.0.0-rc.13 - Upgraded to
tauri-utils@2.0.0-rc.13 - Upgraded to
tauri-macros@2.0.0-rc.12 - Upgraded to
tauri-build@2.0.0-rc.13
Breaking Changes
0b4495996(#11121 by @amrbashir) Simplified emitted tray event JS value and updatedTrayIconEventtype definition to match it.
[2.0.0-rc.15]
New Features
ad294d274(#11032 by @amrbashir) Addapp > windows > createoption to choose whether to create this window at app startup or not.
Enhancements
e7fd676c2(#11025 by @lucasfernog) Inject__INVOKE_KEY__into custom invoke systems so their implementations can properly constructtauri::webview::InvokeRequest.
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.12 - Upgraded to
tauri-runtime@2.0.0-rc.12 - Upgraded to
tauri-runtime-wry@2.0.0-rc.13 - Upgraded to
tauri-macros@2.0.0-rc.11 - Upgraded to
tauri-build@2.0.0-rc.12
Breaking Changes
551e0624a(#11027 by @lucasfernog) Remove theresponderpart of a custom invoke system now that the responder can be set directly in thetauri::WebviewWindow::on_messagefunction.
[2.0.0-rc.14]
Bug Fixes
e5f037277(#11018 by @amrbashir) Fix compilation error on macOS due to a missing feature forNSImage.
[2.0.0-rc.13]
Enhancements
bc4804d48(#10924 by @madsmtm) Useobjc2internally and in examples, leading to better memory safety.
Dependencies
- Upgraded to
tauri-runtime-wry@2.0.0-rc.12
Breaking Changes
bc4804d48(#10924 by @madsmtm) Change the pointer type ofPlatformWebview'sinner,controller,ns_windowandview_controllertoc_void, to avoid publically depending onobjc.
[2.0.0-rc.12]
New Features
35bd9dd3d(#10977 by @amrbashir) AddmainBinaryNameconfig option to set the file name for the main binary.
Enhancements
5eb036f33(#11002 by @lucasfernog) Handle macOS binary name change on theprocess::restartfunction.
Bug Fixes
63649d82d(#10971 by @amrbashir) Fix schema generation forcore:defaultset.be18ed50d(#10982 by @lucasfernog) Add a Proguard rule to prevent custom JSON deserializer and serializer classes from being optimized away.00182ebf8(#10988 by @lucasfernog) FixrequestPermissionsnot resolving on Android.
Dependencies
- Upgraded to
tauri-build@2.0.0-rc.11 - Upgraded to
tauri-utils@2.0.0-rc.11 - Upgraded to
tauri-runtime@2.0.0-rc.11 - Upgraded to
tauri-runtime-wry@2.0.0-rc.11 - Upgraded to
tauri-macros@2.0.0-rc.10
Breaking Changes
fe5ff1228(#10978 by @lucasfernog) RenamePermissionState::UnknowntoPermissionState::Prompt.
[2.0.0-rc.11]
Bug Fixes
fafceec30(#10943 by @lucasfernog) Fixes mobile dev server proxy request URL with trailing slashes.
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.10 - Upgraded to
tauri-runtime@2.0.0-rc.10 - Upgraded to
tauri-runtime-wry@2.0.0-rc.10 - Upgraded to
tauri-macros@2.0.0-rc.9 - Upgraded to
tauri-build@2.0.0-rc.10
[2.0.0-rc.10]
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.9 - Upgraded to
tauri-runtime@2.0.0-rc.9 - Upgraded to
tauri-runtime-wry@2.0.0-rc.9 - Upgraded to
tauri-macros@2.0.0-rc.8 - Upgraded to
tauri-build@2.0.0-rc.9 d9c8d3cc8(#10902 by @Legend-Master) Update infer to 0.16, tray icon to 0.17, urlpattern to 0.3, image to 0.25
Breaking Changes
faa259bac(#10907 by @lucasfernog) TheAssets::iterfunction now must return a iterator withItem = (Cow<'_, str>, Cow<'_, [u8]>)to be more flexible on contexts where the assets are not'static.
[2.0.0-rc.9]
New Features
0899e5083(#10884 by @amrbashir) Derive serdeSerializeforSafePathBuf431ca2c77(#10870 by @Legend-Master) AddFromStrimpl forSafePathBuf
Bug Fixes
79de4332b(#10841 by @lucasfernog) Fixes IPC postMessage raw body processing when using the isolation pattern.6696e4880(#10842 by @lucasfernog) Fixes a warning when using a null value on theinvoke.resolve()iOS plugin API.
What's Changed
27d018343(#10844 by @lucasfernog) Changes how the Info.plist is embedded on macOS development to avoid a clippy warning.
Dependencies
- Upgraded to
tauri-runtime-wry@2.0.0-rc.8 - Upgraded to
tauri-utils@2.0.0-rc.8 - Upgraded to
tauri-runtime@2.0.0-rc.8 - Upgraded to
tauri-macros@2.0.0-rc.7 - Upgraded to
tauri-build@2.0.0-rc.8
Breaking Changes
5048a7293(#10840 by @lucasfernog) Thelinux-ipc-protocolfeature is now always enabled, so the Cargo feature flag was removed. This increases the minimum webkit2gtk version to a release that does not affect the minimum target Linux distros for Tauri apps.
[2.0.0-rc.8]
Enhancements
d7e5c00e9(#10817 by @lucasfernog) Addedplugin:::PermissionStateenum.
[2.0.0-rc.7]
New Features
1e441811e(#10786 by @amrbashir) On Windows, Add and emitDoubleClickvariant forTrayIconEvent.
Enhancements
f86a8146a(#10761 by @rdlabo) AddedgetArgsandgetRawArgsmethods to the pluginInvokeclass (Kotlin and Swift), which lets you parse the arguments manually instead of through theparseArgsmethod.
Bug Fixes
03f2a5098(#10718 by @rdlabo) Update swift-rs fixing a plugin build when native dependencies are used.22d2afa89(#10800 by @lucasfernog) Change the Android Proguard rules to keep custom JSON deserializers.fbe76a955(#10797 by @lucasfernog) Uint8Arrays and ArrayBuffers are now properly serialized as an array of numbers.
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.7 - Upgraded to
tauri-build@2.0.0-rc.7 - Upgraded to
tauri-runtime@2.0.0-rc.7 - Upgraded to
tauri-runtime-wry@2.0.0-rc.7 - Upgraded to
tauri-macros@2.0.0-rc.6
[2.0.0-rc.6]
What's Changed
f4d5241b3(#10731 by @amrbashir) Update documentation icon path.
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.6 - Upgraded to
tauri-build@2.0.0-rc.6 - Upgraded to
tauri-runtime-wry@2.0.0-rc.6 - Upgraded to
tauri-runtime@2.0.0-rc.6 - Upgraded to
tauri-macros@2.0.0-rc.5
[2.0.0-rc.5]
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.5 - Upgraded to
tauri-runtime@2.0.0-rc.5 - Upgraded to
tauri-runtime-wry@2.0.0-rc.5 - Upgraded to
tauri-macros@2.0.0-rc.5 - Upgraded to
tauri-build@2.0.0-rc.5
[2.0.0-rc.4]
Enhancements
30c7685eb(#10295 by @liesauer) AddedBuilder::append_invoke_initialization_script.ed04cc3d3(#10664 by @lucasfernog) Include more information in the IPC permission error message.
Bug Fixes
5c335ae9a(#10648 by @Flakebi) Prevent build script from rerunning unnecessarily by only writing files when the content changes.
Dependencies
- Upgraded to
tauri-build@2.0.0-rc.4 - Upgraded to
tauri-utils@2.0.0-rc.4 - Upgraded to
tauri-runtime@2.0.0-rc.4 - Upgraded to
tauri-runtime-wry@2.0.0-rc.4 - Upgraded to
tauri-macros@2.0.0-rc.4
[2.0.0-rc.3]
Bug Fixes
b1d9ffa1a(#10582 by @lucasfernog) Fix IPC fallback (postMessage implementation when custom protocol fails) hanging when sending responses.
What's Changed
bfc49cc7a(#10558 by @ahqsoftwares) Remove targetSdk from gradle filesfedf93eb7(#10585 by @lucasfernog) Change how IPC handles errors to simplify what's logged in the console.
Dependencies
- Upgraded to
tauri-build@2.0.0-rc.3 - Upgraded to
tauri-utils@2.0.0-rc.3 - Upgraded to
tauri-runtime@2.0.0-rc.3 - Upgraded to
tauri-runtime-wry@2.0.0-rc.3 - Upgraded to
tauri-macros@2.0.0-rc.3 d39c392b7(#10655 by @lucasfernog) Updatetaoto 0.29 andwryto 0.42.
Breaking Changes
d0510f52e(#10641 by @lucasfernog) Added a dedicated type for IPC response bodyInvokeResponseBodyfor performance reasons. This is only a breaking change if you are directly using types fromtauri::ipc.
[2.0.0-rc.2]
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.2 - Upgraded to
tauri-runtime@2.0.0-rc.2 - Upgraded to
tauri-runtime-wry@2.0.0-rc.2 - Upgraded to
tauri-macros@2.0.0-rc.2 - Upgraded to
tauri-build@2.0.0-rc.2
[2.0.0-rc.1]
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.1 - Upgraded to
tauri-runtime@2.0.0-rc.1 - Upgraded to
tauri-runtime-wry@2.0.0-rc.1 - Upgraded to
tauri-macros@2.0.0-rc.1 - Upgraded to
tauri-build@2.0.0-rc.1
[2.0.0-rc.0]
Bug Fixes
6755af230(#10435) Fix Specta remote implementation target forChannel.24445d71d(#10432) Fixes asset resolving when not using thecompressionfeature.
Enhancements
1e0793b68(#10357) EnhanceAssetResolver::getin development mode by reading distDir directly as a fallback to the embedded assets.7aeac39e7(#10397) Make the set of gtk application id optional, to allow more then one instance of the app running at the same time.cf994a6bb(#10405) Addtauri::plugin::Builder::try_buildto allow plugins to check if theirTauriPlugininitialization is valid.
Security fixes
426d14bb4(#10423) Explicitly check that the main frame's origin is the sender of Isolation Payloads289ae5555(#10386) Re-enable TLS checks that were previously disabled to support an insecure HTTPS custom protocol on Android which is no longer used.
Dependencies
- Upgraded to
tauri-utils@2.0.0-rc.0 - Upgraded to
tauri-macros@2.0.0-rc.0 - Upgraded to
tauri-build@2.0.0-rc.0 - Upgraded to
tauri-runtime@2.0.0-rc.0 - Upgraded to
tauri-runtime-wry@2.0.0-rc.0
Breaking Changes
758d28c8a(#10390) Core plugin permissions are now prefixed withcore:, thecore:defaultpermission set can now be used and thecoreplugin name is reserved. Thetauri migratetool will automate the migration process, which involves prefixing allapp,event,image,menu,path,resources,tray,webviewandwindowpermissions withcore:.
[2.0.0-beta.25]
New Features
-
da25f7353(#10242 by @amrbashir) Add APIs to enable setting window size constraints separately:- Added
WindowBuilder::inner_size_constraintsandWebviewWindowBuilder::inner_size_constraintswhich can be used for setting granular constraints. - Added
WindowSizeConstraintsstruct - Added
Window::set_size_constraintsandWebviewWindow::set_size_constraints
- Added
Bug Fixes
e1776946a(#10362 by @Brendonovich) Usespecta rc.15'sderive` feature which fixes build issues in docs.rs.da25f7353(#10242 by @amrbashir) ApplyminWidth,minHieght,maxWidthandmaxHeightconstraints separately, which fixes a long standing bug where these constraints were never applied unless width and height were constrained together.
What's Changed
9546548ec(#10297 by @pewsheen) On macOS, set default titlebar style toVisibleto prevent webview move out of the view.
Dependencies
- Upgraded to
tauri-runtime-wry@2.0.0-beta.21 - Upgraded to
tauri-runtime@2.0.0-beta.21
[2.0.0-beta.24]
New Features
Enhancements
a7354f9a8(#10171 by @amrbashir) MarkAppHandle::restartandprocess::restartas diverging functions.
Bug Fixes
4c239729c(#10167 by @amrbashir) Fix deserialization of raw invoke requests when usingisolationpattern.55733aba9(#10176 by @lucasfernog) MovePluginApi::register_ios_pluginbehind thewryCargo feature asWebview::with_webviewis only available when that feature is enabled.
Dependencies
- Upgraded to
tauri-macros@2.0.0-beta.19 - Upgraded to
tauri-build@2.0.0-beta.19 - Upgraded to
tauri-runtime-wry@2.0.0-beta.20 - Upgraded to
tauri-utils@2.0.0-beta.19 - Upgraded to
tauri-runtime@2.0.0-beta.20
Breaking Changes
-
ba9590aa9(#9640 by @amrbashir) AddedEmitterandListenertraits that defines what an emitter or a listener can do, this however comes with a few breaking changes:- Removed
Manager::listen_any, useListener::listen_anyinstead. - Removed
Manager::once_any, useListener::once_anyinstead. - Removed
Manager::unlisten, useListener::unlisteninstead. - Removed
Manager::emit, useEmitter::emitinstead. - Removed
Manager::emit_to, useEmitter::emit_toinstead. - Removed
Manager::emit_filter, useEmitter::emit_filterinstead. - Removed
App/AppHandle::listen,WebviewWindow::listen,Window::listenandWebview::listen, useListener::listeninstead. - Removed
App/AppHandle::once,WebviewWindow::once,Window::onceandWebview::once, useListener::onceinstead. - Removed
App/AppHandle::unlisten,WebviewWindow::unlisten,Window::unlistenandWebview::unlisten, useListener::unlisteninstead.
- Removed
-
261c9f942(#10170 by @amrbashir) RenamedDragDropEventenum variants to better convey when they are triggered:DragDropEvent::Dragged->DragDropEvent::EnterDragDropEvent::DragOver->DragDropEvent::OverDragDropEvent::Dropped->DragDropEvent::DropDragDropEvent::Cancelled->DragDropEvent::Leave
This also comes with a change in the events being emitted to JS and Rust event listeners:
tauri://drag->tauri://drag-entertauri://drop-over->tauri://drag-overtauri://drop->tauri://drag-droptauri://drag-cancelled->tauri://drag-leave
-
2b1ceb40d(#10229 by @amrbashir) Renamed the JSgetCurrentandgetAllfunctions to a clearer name to avoid ambiguity:getCurrentinwindowmodule has been renamed togetCurrentWindowgetCurrentinwebviewmodule has been renamed togetCurrentWebviewgetCurrentinwebviewWindowmodule has been renamed togetCurrentWebviewWindowgetAllinwindowmodule has been renamed togetAllWindowsgetAllinwebviewmodule has been renamed togetAllWebviewsgetAllinwebviewWindowmodule has been renamed togetAllWebviewWindows
-
57612ab24(#10139 by @Brendonovich) AddTSendgeneric toipc::Channelfor typesafesendcalls and type inspection intauri-specta
[2.0.0-beta.23]
New Features
148f04887(#9979) AdddefaultWindowIconto the JSappmodule to retrieve the default window icon in JS.5b769948a(#9959) Addinclude_imagemacro to help embedding instances ofImagestruct at compile-time in rust to be used with window, menu or tray icons.ddaabda36(#9922) AddWebviewWindowBuilder::on_download.
Enhancements
Bug Fixes
-
e93ca1df3(#10138) FixInvokeBody::deserializemethod deserialization forInvokeBody::Rawvariant -
e6e17ad1c(#9954) Addstdfeature toraw-window-handlecrate so that usingdefault-features = falseontauricrate can work -
f29b78811(#9862) On Windows, handle resizing undecorated windows natively which improves performance and fixes a couple of annoyances with previous JS implementation:- No more cursor flickering when moving the cursor across an edge.
- Can resize from top even when
data-tauri-drag-regionelement exists there. - Upon starting rezing, clicks don't go through elements behind it so no longer accidental clicks.
What's Changed
669b9c6b5(#9621) Set the gtk application to the identifier defined intauri.conf.jsonto ensure the app uniqueness.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.18 - Upgraded to
tauri-build@2.0.0-beta.18 - Upgraded to
tauri-macros@2.0.0-beta.18 - Upgraded to
tauri-runtime-wry@2.0.0-beta.19 - Upgraded to
tauri-runtime@2.0.0-beta.19 f955f7b49(#9929) Switch fromdirs_nexttodirsasdirs_nextis now unmaintained whiledirsisd4c908cfb(#10048) Updatewindowscrate to version0.57andwebview2-comcrate to version0.31
Breaking Changes
3afe82894(#10134) ChangedWebviewWindow::navigateandWebview::navigatemethod signature to return aResult
[2.0.0-beta.22]
Bug Fixes
-
dfd05441c(#9860) Revert addingapp-region: dragto HTML elements withdata-tauri-drag-regionon Windows as it has a few issues:- Doesn't allow right click, as it will always show the system context menu on right click.
data-tauri-drag-regionworks only if the click was on an element that has it, this allows buttons in the custom titlebar to work, howeverapp-region: dragwill treat the whole area as a titlebar won't even allow clicks on buttons.
[2.0.0-beta.21]
New Features
8a1ae2dea(#9843) Added an option to use a Xcode project for the iOS plugin instead of a plain SwiftPM project.
Bug Fixes
276c4b143(#9832) On Windows, fix wrong menubar theme when window is using an explicit theme.ccc3ea729(#9646) Parse the correct platformtauri.<platform>.conf.jsonconfig file when building or developing for mobile.aa55e0335(#9899) Set default window origin tonull. Prevent window crash when loadingabout:blank.
What's Changed
9ac930380(#9850) Emitcargo:rustc-check-cfginstruction so Cargo validates custom cfg attributes on Rust 1.80 (or nightly-2024-05-05).80aa50498(#9870) Updated Android target SDK to 34.
Dependencies
- Upgraded to
tauri-build@2.0.0-beta.17 - Upgraded to
tauri-macros@2.0.0-beta.17 - Upgraded to
tauri-utils@2.0.0-beta.17 - Upgraded to
tauri-runtime@2.0.0-beta.18 - Upgraded to
tauri-runtime-wry@2.0.0-beta.18
Breaking Changes
-
e8f6eb59a(#9552) Include binary path inEnv.args_os, previously it was skipped. -
1df5cdeb0(#9858) Usetauri.conf.json > identifierto set thePackageNamein Android andBundleIdin iOS. -
aaecb6a72(#9890) Renameddevfunction tois_devand marked it asconst fn -
c4410daa8(#9777) This release contains breaking changes to the tray event structure because of newly added events:- Changed
TrayIconEventto be an enum instead of a struct. - Added
MouseButtonStateandMouseButtonenums. - Removed
ClickTypeenum and replaced it withMouseButtonenum. - Added
MouseButtonStateenum.
- Changed
[2.0.0-beta.20]
New Features
ae6b13dfc(#9789) Addapp-region: dragto HTML elements withdata-tauri-drag-regionon Windows, only WebView2 123+, which should fix dragging using touch.ec0e092ec(#9770) AddApp/AppHandle/Window/Webview/WebviewWindow::monitor_from_point(x, y)getter to get the monitor from a given point.
Enhancements
Bug Fixes
Security fixes
d950ac123Only process IPC commands from the main frame.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.16 - Upgraded to
tauri-runtime-wry@2.0.0-beta.17 - Upgraded to
tauri-runtime@2.0.0-beta.17 - Upgraded to
tauri-macros@2.0.0-beta.16 - Upgraded to
tauri-build@2.0.0-beta.16
[2.0.0-beta.19]
New Features
Bug Fixes
fedca7386(#9720) Fix IPC tracing format incompatible between the custom protocol and the postMessage implementations.
Dependencies
- Upgraded to
tauri-runtime@2.0.0-beta.16 - Upgraded to
tauri-runtime-wry@2.0.0-beta.16 - Upgraded to
tauri-utils@2.0.0-beta.15 - Upgraded to
tauri-macros@2.0.0-beta.15 - Upgraded to
tauri-build@2.0.0-beta.15
Breaking Changes
[2.0.0-beta.18]
New Features
Enhancements
7f6d2698c(#9631) Improve the error message that is shown when deserializing the Tauri plugin config.8a71858eb(#9630) Provide a default for the runtime generic onMenu,MenuItem,Submenu,PredefinedMenuItem,CheckMenuItemandIconMenuItem.8a71858eb(#9630) Provide a default for the runtime generic onTrayIcon.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.14 - Upgraded to
tauri-runtime@2.0.0-beta.15 - Upgraded to
tauri-runtime-wry@2.0.0-beta.15 - Upgraded to
tauri-macros@2.0.0-beta.14 - Upgraded to
tauri-build@2.0.0-beta.14
[2.0.0-beta.17]
New Features
12b4159bd(#9392) Addspectafeature flag which addsspectasupport forAppHandle,State,Window,WebviewandWebviewWindowtypes.477bb8cd4(#9297) AddApp/AppHandle/Window/Webview/WebviewWindow::cursor_positiongetter to get the current cursor position.
Enhancements
eff778b8f(#9571) Run each plugin initialization script on its own context so they do not interfere with each other or the Tauri init script.
Bug Fixes
6c047aee1(#9612) Fix window white flashing on exit on Windows98101cb17(#9561) Allow any headers on the IPC custom protocol.
Dependencies
- Upgraded to
tauri-runtime@2.0.0-beta.14 - Upgraded to
tauri-runtime-wry@2.0.0-beta.14
[2.0.0-beta.16]
New Features
Bug Fixes
daf018e4f(#9505) Fix resource tables not cleaned up on exit which causes tray icon inside resource tables not cleaned up on exita07b51320(#9490) Add missing permission forwindow.start_resize_dragging35b25f7e5(#9530) Do not use JS optional chaining to prevent script errors on older webviews such as macOS 10.14.
What's Changed
005fe8ce1(#9410) Fixclosable,maximizableandminimizableoptions not taking effect when used in tauri.conf.json or from JS APIs.
Dependencies
- Upgraded to
tauri-runtime-wry@2.0.0-beta.13 - Upgraded to
tauri-build@2.0.0-beta.13 - Upgraded to
tauri-utils@2.0.0-beta.13 - Upgraded to
tauri-runtime@2.0.0-beta.13 - Upgraded to
tauri-macros@2.0.0-beta.13
[2.0.0-beta.15]
New Features
58a7a552d(#9378) Added theset_zoomfunction to the webview API.58a7a552d(#9378) Addzoom_hotkeys_enabledto enable browser native zoom controls on creating webviews.4973d73a2(#9386) Provide a basic zoom hotkey polyfill for non-Windows platforms
Enhancements
f1674fce6(#9420) Tauri's built-in commands for the JS api will now return simplified paths on Windows, removing the\\?\prefix.
Bug Fixes
c8a82ad22(#9379) Fix deadlock when using the menu/tray/image JS APIs.6251645ac(#9360) Fixes an issue causinggetAll()to list webviews that were already destroyed.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.12 - Upgraded to
tauri-runtime-wry@2.0.0-beta.12 - Upgraded to
tauri-runtime@2.0.0-beta.12 - Upgraded to
tauri-macros@2.0.0-beta.12 - Upgraded to
tauri-build@2.0.0-beta.12
Breaking Changes
c8a82ad22(#9379) ChangedJsImage::into_imgto take a reference to aResourceTableinstead of aManager.
[2.0.0-beta.14]
New Features
06833f4fa(#9100) AddedRectstruct.06833f4fa(#9100) AddWebview::boundsandWebview::set_boundsAPIs.
Enhancements
06833f4fa(#9100) Enhance the IPC URL check by using the Origin header on the custom protocol IPC and the new request URI field on the postMessage IPC instead of usingWebview::url()which only returns the URL of the main frame and is not suitable for iframes (iframe URL fetch is still not supported on Android and on Linux when using the postMessage IPC).
Bug Fixes
c33f6e6cf(#9211) Fixed an issue preventing webview/window creation events to not be emitted. This also fixed thegetByLabelandgetAllJavaScript functions.
What's Changed
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.11 - Upgraded to
tauri-runtime-wry@2.0.0-beta.11 - Upgraded to
tauri-runtime@2.0.0-beta.11 - Upgraded to
tauri-macros@2.0.0-beta.11 - Upgraded to
tauri-build@2.0.0-beta.11
Breaking Changes
-
06833f4fa(#9100) RenameFileDroptoDragDropon structs, enums and enum variants. Also renamedfile_droptodrag_dropon fields and function names. -
284eca9ef(#9272)Manager::resources_tableis now scoped so eachApp/AppHandle/Window/Webview/WebviewWindowhas its own resource collection. -
06833f4fa(#9100) Refactored the tray icon event struct:- Changed
TrayIconEvent.icon_recttype to use the newtauri::Recttype. - Removed
TrayIconEvent.xandTrayIconEvent.yfields and combined them intoTrayIconEvent.positionfield. - Removed
tauri::tray::Rectanglestruct.
- Changed
[2.0.0-beta.13]
Enhancements
75f5cb401(#9214)tauri::Windowandtauri::WebviewWindownow implementraw_window_handle::HasDisplayHandle.
Bug Fixes
81b853bc8(#9213) Fixed an issue where errors where returned as strings instead of objects from commands.43230cb6b(#9219) Fixes the menu pluginremovecommand signature.
[2.0.0-beta.12]
New Features
e227fe02f(#9156) Allow plugins to define (at compile time) JavaScript that are initialized whenwithGlobalTauriis true.
Enhancements
Bug Fixes
379cc2b35(#9165) Fixbasename(path, 'ext')JS API when removing all occurances ofextwhere it should only remove the last one.
Dependencies
- Upgraded to
tauri-build@2.0.0-beta.10 - Upgraded to
tauri-utils@2.0.0-beta.10 - Upgraded to
tauri-runtime@2.0.0-beta.10 - Upgraded to
tauri-runtime-wry@2.0.0-beta.10 - Upgraded to
tauri-macros@2.0.0-beta.10
Breaking Changes
acdd76833(#9155) RemovedApp/AppHandle::trayandApp/AppHandle::remove_tray, useApp/AppHandle::tray_by_idandApp/AppHandle::remove_tray_by_idinstead. If these APIs were used to access tray icon configured intauri.conf.json, you can useApp/AppHandle::tray_by_idwith IDmainor the configured value.ea0242db4(#9179) Removedwidthandheightmethods on the JSImageclass, usesizeinstead.
[2.0.0-beta.11]
New Features
490a6b424(#9147) TheAssetstrait now include asetupmethod that lets you run initialization code for your custom asset provider.
Bug Fixes
85de230f3(#9144) Fix old JS listeners being dropped on page load after it was possible to create new listeners.e673854c8(#9133) Fixes capability remote domain not allowing subpaths, query parameters and hash when those values are empty.
Dependencies
- Upgraded to
tauri-macros@2.0.0-beta.9 - Upgraded to
tauri-utils@2.0.0-beta.9 - Upgraded to
tauri-build@2.0.0-beta.9 - Upgraded to
tauri-runtime@2.0.0-beta.9 - Upgraded to
tauri-runtime-wry@2.0.0-beta.9
Breaking Changes
490a6b424(#9147) TheContextstruct and theAssetstrait now takes aR: Runtimegeneric.ba0206d8a(#9141)Context::assetsnow returns&dyn Assetsinstead of&Ageneric.ba0206d8a(#9141) TheContexttype no longer uses the<A: Assets>generic so the assets implementation can be swapped withContext::assets_mut.490a6b424(#9147) RemovedContext::assets_mutand addedContext::set_assets.db0a24a97(#9132) Use the image crate fortauri::image::Imageand remove thefrom_png_bytesandfrom_ico_bytesAPIs.
[2.0.0-beta.10]
New Features
3e472d0af(#9115) AddedCapabilityBuilder::platformto link the runtime capability with a specific platform.
Enhancements
3e472d0af(#9115) Changed the permission and capability platforms to be optional.9dc9ca6e3(#9113) Addedtauri::dev()to determine whether we are running in development mode or not.
Bug Fixes
5541aafef(#9107) Fixemitandemit_to(when used withEventTarget::Any) always skipping the webview listeners.80c12ead4(#9121) Fix regression on IPC response when using a channel to return objects.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.8 - Upgraded to
tauri-runtime@2.0.0-beta.8 - Upgraded to
tauri-runtime-wry@2.0.0-beta.8 - Upgraded to
tauri-macros@2.0.0-beta.8 - Upgraded to
tauri-build@2.0.0-beta.8
Breaking Changes
4ef17d083(#9116) The ACL configuration for remote URLs now uses the URLPattern standard instead of glob patterns.ed48e2b3c(#9122) Exposetauri::imagemodule to export theJsImagetype and removed theImageroot re-export.
[2.0.0-beta.9]
New Features
46de49aaa(#9059) Addedset_auto_resizemethod for the webview.d1e77acd8(#9011) Add a newImagetype in Rust and JS.
Enhancements
a77be9747(#9038) Fallback to the postMessage IPC interface if we cannot reach the IPC custom protocol.e62ca4ee9(#9070) Added a mechanism to preserve channel message order.03098b531(#9036)Manager::add_capabilitynow allows adding a dynamically defined capability instead of only relying on static strings.b5c743276(#9086) Use a strict content security policy on the isolation pattern iframe.46de49aaa(#9059) When using theunstablefeature flag,WebviewWindowwill internally use the child webview interface for flexibility.
Bug Fixes
86fa339de(#9071) Fix compile time error in context generation when usingapp.windows.windowEffects.color947a50b8e(#9049) Fixtauri migratefor http plugin ACL.fe18012d3(#9072) Resolve symlinks on the filesystem scope check.6c0683224(#9068) Fixes scope resolution grouping scopes for all windows.
Dependencies
- Upgraded to
tauri-build@2.0.0-beta.7 - Upgraded to
tauri-utils@2.0.0-beta.7 - Upgraded to
tauri-runtime@2.0.0-beta.7 - Upgraded to
tauri-runtime-wry@2.0.0-beta.7 - Upgraded to
tauri-macros@2.0.0-beta.7
Breaking Changes
d1e77acd8(#9011) Renamedicon-icoandicon-pngfeature flags toimage-icoandimage-pngrespectively720357fd5(#9104) Removedtauri::path::Resultandtauri::path::Errorwhich were merely an unintentional re-export oftauri::Resultandtauri::Errorso use those instead.6c0683224(#9068) Theallowsanddeniesmethods fromipc::ScopeValue,ipc::CommandScopeandipc::GlobalScopenow returns&Vec<Arc<T>>instead of&Vec<T>.d1e77acd8(#9011) RemovedContext::default_window_icon_mutandContext::tray_icon_mut, useContext::set_default_window_iconandContext::set_tray_iconinstead. Also changedContext::set_tray_iconto acceptOption<T>.d1e77acd8(#9011) RemovedIconenum, use the newImagetype instead. All APIs that previously acceptedIconhave changed to acceptImageinstead.
[2.0.0-beta.8]
New Features
d7f56fef(#9014) Allow defining a permission that only applies to a set of target platforms via theplatformsconfiguration option.
Bug Fixes
e1d5b790(#8995) Fixes capability webview label check.222a96b7(#8999) FixesWindow::add_childdeadlock.e4463f08(#8930) Clear JS event listeneres on page load, which fixes zombie listeners when the page reloads.222a96b7(#8999) FixesWebview::reparentnot updating the webview parent window reference.
Dependencies
- Upgraded to
tauri-build@2.0.0-beta.6 - Upgraded to
tauri-utils@2.0.0-beta.6 - Upgraded to
tauri-runtime-wry@2.0.0-beta.6 - Upgraded to
tauri-runtime@2.0.0-beta.6 - Upgraded to
tauri-macros@2.0.0-beta.6
Breaking Changes
3657ad82(#9008) Allow defining permissions for the application commands viatauri_build::Attributes::app_manifest.
Breaking Changes
b9e6a018(#8937) Thecustom-protocolCargo feature is no longer required on your application and is now ignored. To check if running on production, use#[cfg(not(dev))]instead of#[cfg(feature = "custom-protocol")].
[2.0.0-beta.7]
Enhancements
bc5b5e67(#8984) Do not include a CSP tag in the application HTML and rely on the custom protocol response header instead.
Bug Fixes
6cb601d4(#8983) Convert the command name to camelCase when executing a mobile plugin command.60bf11ab(#8986) ExportProgressBarStatus, regression introduced in2.0.0-beta.4
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.5 - Upgraded to
tauri-runtime@2.0.0-beta.5 - Upgraded to
tauri-runtime-wry@2.0.0-beta.5 - Upgraded to
tauri-macros@2.0.0-beta.5 - Upgraded to
tauri-build@2.0.0-beta.5
[2.0.0-beta.6]
Bug Fixes
[2.0.0-beta.5]
New Features
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.4 - Upgraded to
tauri-runtime-wry@2.0.0-beta.4 - Upgraded to
tauri-build@2.0.0-beta.4 - Upgraded to
tauri-runtime@2.0.0-beta.4 - Upgraded to
tauri-macros@2.0.0-beta.4
[2.0.0-beta.4]
Enhancements
3fb414b6(#8914) Return an id when using fromManager::once_any,App::once,Window::once,Webview::once,WebviewWindow::onceandfs::Scope::once.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.3 - Upgraded to
tauri-runtime@2.0.0-beta.3 - Upgraded to
tauri-runtime-wry@2.0.0-beta.3 - Upgraded to
tauri-macros@2.0.0-beta.3 - Upgraded to
tauri-build@2.0.0-beta.3
Breaking Changes
361ec37f(#8932) MovedProgressBarStatefromtauri-utilsto thetauri::windowmodule and removed theunity_urifield.
[2.0.0-beta.3]
New Features
-
16e550ec(#8844) Add webview-specific events for multi-webview windows:- Add
WebviewEventenum - Add
RunEvent::WebviewEventvariant. - Add
Builder::on_webview_eventandWebview::on_webview_eventmethods.
- Add
Enhancements
11a5816b(#8864) A file-drop now allows sub-directories recursively when the path is a directory.0cb0a15c(#8789) Addwebviewsarray on the capability for usage on multiwebview contexts.258494bd(#8806) AddedManager::add_capabilityto add a capability file at runtime.5618f6d2(#8856) Relax requirements on plugin's identifiers to be alphanumeric and-instead of only lower alpha and-.
Bug Fixes
16e550ec(#8844) Fix JS event listeners registered using JSlistenapi withEventTarget::Anynever fired.8751c329(#8793) Fix invoking toggle devtools by hotkey.bd73ab0a(#8766) When using the multiwebview mode, properly remove the webview from memory onWebview::close.46b6598a(#8826) Fix JSonCloseRequestedcatching close event from other windows.2e6db908(#8777) Fix regression intauri::Errornot beingSync.
What's Changed
76ce9f61(#3002) Enhance centering a newly created window, it will no longer jump to center after being visible.
Dependencies
- Upgraded to
tauri-utils@2.0.0-beta.2 - Upgraded to
tauri-build@2.0.0-beta.2 - Upgraded to
tauri-macros@2.0.0-beta.2 - Upgraded to
tauri-runtime-wry@2.0.0-beta.2 - Upgraded to
tauri-runtime@2.0.0-beta.2
Breaking Changes
258494bd(#8806) Removed the lifetime parameter fromipc::GlobalScopeandipc::CommandScope.f284f9c5(#8898) Changed the capabilityremoteconfiguration to take a list ofurlsinstead ofdomainsfor more flexibility.2f55bfec(#8795) Update raw-window-handle to 0.6.2e6db908(#8777) RequireScopeObject::Errorto beSyncas well.
[2.0.0-beta.2]
Bug Fixes
Dependencies
- Upgraded to
tauri-build@2.0.0-beta.1 - Upgraded to
tauri-utils@2.0.0-beta.1 - Upgraded to
tauri-runtime@2.0.0-beta.1 - Upgraded to
tauri-runtime-wry@2.0.0-beta.1 - Upgraded to
tauri-macros@2.0.0-beta.1
[2.0.0-beta.1]
Bug Fixes
[2.0.0-beta.0]
New Features
74a2a603(#8661) Implement access control list for IPC usage.a2fc3a63(#8657) AddvisibleOnAllWorkspacesoption when creating the window in JS andWindow.setVisibleOnAllWorkspacesmethod.af610232(#8710) AddedWindow::destroyto force close a window.c77b4032(#8280) Add multiwebview support behind theunstablefeature flag. SeeWindowBuilderandWebviewBuilderfor more information.9eaeb5a8(#8622) AddWindowBuilder::parentwhich is a convenient wrapper around parent functionality for Windows, Linux and macOS. Also addedWindowBuilder::owneron Windows only. Also addedWindowBuilder::transient_forandWindowBuilder::transient_for_rawon Linux only.
Enhancements
e8d3793c(#8732) Addcommon-controls-v6cargo feature flag (enabled by default).58fe2e81(#8670) Allow IPC calls when window origin is a defined custom protocol.
Bug Fixes
95da1a27(#8713) Fix callingset_activation_policywhen the event loop is running.e1eb911f(#8582) Ensure initalize logic and dropping of menu item is done on the main thread, this fixes the crash when a menu item is dropped on another thread.a093682d(#8621) Fix can not prevent closing a window from another webview.7f033f6d(#8537) Fix undecorated window resizing on Windows and Linux.
What's Changed
9f8037c2(#8633) On Windows, fix decorated window not transparent initially until resized.7f033f6d(#8537) AddWindow::start_resize_draggingandResizeDirectionenum.6639a579(#8441) Added theWindowConfig::proxy_urlWebviewBuilder::proxy_url() / WebviewWindowBuilder::proxy_url()options when creating a webview.
Dependencies
- Upgraded to
tauri-build@22.0.0-beta.0 - Upgraded to
tauri-utils@2.0.0-beta.0 - Upgraded to
tauri-macros@2.0.0-beta.0 - Upgraded to
tauri-runtime@2.0.0-beta.0 - Upgraded to
tauri-runtime-wry@2.0.0-beta.0
Breaking Changes
-
8de308d1(#8723) Restructured Tauri config per RFC#5:- Moved
package.productName,package.versionandtauri.bundle.identifierfields to the top-level. - Removed
packageobject. - Renamed
tauriobject toapp. - Moved
tauri.bundleobject to the top-level. - Renamed
build.distDirfield tofrontendDist. - Renamed
build.devPathfield todevUrland will no longer accepts paths, it will only accept URLs. - Moved
tauri.patterntoapp.security.pattern. - Removed
tauri.bundle.updaterobject, and its fields have been moved to the updater plugin underplugins.updaterobject. - Moved
build.withGlobalTauritoapp.withGlobalTauri. - Moved
tauri.bundle.dmgobject tobundle.macOS.dmg. - Moved
tauri.bundle.debobject tobundle.linux.deb. - Moved
tauri.bundle.appimageobject tobundle.linux.appimage. - Removed all license fields from each bundle configuration object and instead added
bundle.licenseandbundle.licenseFile. - Renamed
AppUrltoFrontendDistand refactored its variants to be more explicit.
- Moved
-
c77b4032(#8280) Theinvoke_system,on_page_loadhooks now gives you aWebviewargument instead of aWindow. -
e1eb911f(#8582) All menu item constructorsacceleratorargument have been changed toOption<impl AsRef<str>>so when providingNoneyou need to specify the generic argument likeNone::<&str>. -
e1eb911f(#8582) All menu item constructors have been changed to return aResult<Self> -
aa758a85(#8716) Moved thecommandmodule items to theipcmodule so its import name does not clash with thecommandmacro. -
00e15675(#8708)AppHandle::exitandAppHandle::restartnow go triggersRunEvent::ExitRequestedandRunEvent::Exitand cannot be executed on the event loop handler. -
ec9818ac(#8696) Added a callback to theApp::run_iterationand removed its return value. -
a093682d(#8621) Refactored the event system to better accommodate the new window types:- Added
EventTargetenum. - Added
App/AppHandle::listen,App/AppHandle::onceandApp/AppHandle::unlistento listen to events targetingApp/AppHandle App/AppHandle/Window/Webview/WebviewWindow::emitwill now emit to all event listeners.App/AppHandle/Window/Webview/WebviewWindow::emit_towill emit to event targets that match the given label, seeEventTargetenum.App/AppHandle/Window/Webview/WebviewWindow::emit_filterwill emit to event targets based on a filter callback which now takes&EventTargetinstead of&Window.- Renamed
Manager::listen_globalandManager::once_globaltolisten_anyandonce_anyrespectively to be consistent withEventTarget::Any, it will now also listen to any event to any target (aka event sniffer).
- Added
-
9eaeb5a8(#8622) RenamedWindowBuilder::owner_windowtoWindowBuilder::owner_rawandWindowBuilder::parent_windowtoWindowBuilder::parent_raw. -
9eaeb5a8(#8622) ChangedWindowBuilder::from_configto return aResult<Self>. -
c77b4032(#8280) RenamedWindowtoWebviewWindow,WindowBuildertoWebviewWindowBuilder,Manager::windowstoManager::webview_windowsandManager::get_windowtoManager::get_webview_window. -
af610232(#8710)Window::closenow triggers a close requested event instead of forcing the window to be closed. -
c77b4032(#8280) Renamed thewindow-data-urlfeature flag towebview-data-url.
[2.0.0-alpha.21]
New Features
Enhancements
d621d343(#8607) Added tracing for window startup, plugins,Window::eval, events, IPC, updater and custom protocol request handlers behind thetracingfeature flag.
What's Changed
cb640c8e(#8393) FixRunEvent::WindowEvent(event: WindowEvent::FileDrop(FileDropEvent))never triggered and always prevent default OS behavior whendisable_file_drop_handleris not used.
Dependencies
- Upgraded to
tauri-runtime-wry@1.0.0-alpha.9 - Upgraded to
tauri-utils@2.0.0-alpha.13 - Upgraded to
tauri-runtime@1.0.0-alpha.8 - Upgraded to
tauri-macros@2.0.0-alpha.13 - Upgraded to
tauri-build@2.0.0-alpha.14
Breaking Changes
2032228c(#8430) RemovedGlobalWindowEventstruct, and unpacked its field to be passed directly totauri::Builder::on_window_event.
[2.0.0-alpha.20]
Dependencies
- Upgraded to
tauri-utils@2.0.0-alpha.12 - Upgraded to
tauri-runtime@1.0.0-alpha.7 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.8 - Upgraded to
tauri-macros@2.0.0-alpha.12 - Upgraded to
tauri-build@2.0.0-alpha.13
[2.0.0-alpha.19]
New Features
b59f2f54(#8432) Exposescope::fs::Scope::new.bf095df5(#8276) ExposedManager::resources_tableto access the resources table used by tauri, which could be used by plugins or app authors to store their resources and retrieve it later using an id and can be used to create Rust-backed resources in JS.
Enhancements
5848b4e8(#8386) Fixed the deserialisation of aChannelin iOS.11a1529d(#8419) Include CORS header on custom protocol response errors to ensure frontend can read the error message.db127777(#8380) Addedtest::get_ipc_response.
Bug Fixes
effe5871(#8420) Fixes file scope checks on Android.f98ce5aa(#8328) Fix incorrect menu item forPredefinedMenuItem::close_window
[2.0.0-alpha.18]
Bug Fixes
Dependencies
- Upgraded to
tauri-macros@2.0.0-alpha.11 - Upgraded to
tauri-build@2.0.0-alpha.12 - Upgraded to
tauri-utils@2.0.0-alpha.11 - Upgraded to
tauri-runtime@1.0.0-alpha.5 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.6
[2.0.0-alpha.17]
Enhancements
b89de9fa(#8092) Add support for onResume and onPause events in android plugins.c6c59cf2Pull changes from Tauri 1.5 release.198abe3c(#8076) Mobile plugins can now resolve using an arbitrary object instead of using theJSObjectclass viaInvoke.resolveon iOS andInvoke.resolveObjecton Android.
Bug Fixes
Dependencies
- Upgraded to
tauri-build@2.0.0-alpha.11 - Upgraded to
tauri-macros@2.0.0-alpha.10 - Upgraded to
tauri-utils@2.0.0-alpha.10 - Upgraded to
tauri-runtime@1.0.0-alpha.4 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.5 9580df1d(#8084) Upgradegtkto 0.18.c7c2507d(#8035) Updatewindowsto version0.51andwebview2-comto version0.279580df1d(#8084) Updated to wry@0.34, removing thedoxfeature flag.
Breaking Changes
-
198abe3c(#8076) The AndroidPluginManager.loadConfignow takes a third parameter to define the class type of the config object. -
198abe3c(#8076) Mobile plugins now have access to a parser for the invoke arguments instead of relying on theInvoke#get${TYPE}methods. -
74d2464d(#8116) AddedWindowBuilder::on_page_loadand refactored theBuilder::on_page_loadhandler to take references. The page load hook is now triggered for load started and finished events, to determine what triggered it seePageLoadPayload::event. -
93c8a77b(#7996) The event system APIS on Rust is recieving a few changes for consistency and quality of life improvements:- Renamed
Manager::emit_allto justManager::emitand will now both trigger the events on JS side as well as Rust. - Removed
Manager::trigger_global, useManager::emit - Added
Manager::emit_filter. - Removed
Window::emit, and moved the implementation toManager::emit. - Removed
Window::emit_and_triggerandWindow::trigger, useWindow::emitinstead. - Changed
Window::emit_toto only trigger the target window listeners so it won't be catched byManager::listen_global
- Renamed
[2.0.0-alpha.16]
New Features
c085adda(#8009) Addedset_progress_bartoWindow.c1ec0f15(#7933) AddedWindow::set_always_on_bottomand thealways_on_bottomoption when creating a window.880266a7(#8031) Bump the MSRV to 1.70.ed32257d(#7794) On Windows, addEffect::Tabbed,Effect::TabbedDarkandEffect::TabbedLighteffects.
Enhancements
What's Changed
fb10b879(#8039) Added theappplugin back into core.c9a9246c(#8007) Added thewindowplugin back into core.
Dependencies
- Upgraded to
tauri-runtime@1.0.0-alpha.3 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.4 - Upgraded to
tauri-utils@2.0.0-alpha.9 - Upgraded to
tauri-build@2.0.0-alpha.10 - Upgraded to
tauri-macros@2.0.0-alpha.9
Breaking Changes
-
a63e71f9(#7942) The initialization script forBuilder::invoke_systemnow must initialize thewindow.__TAURI_INTERNALS__.postMessagefunction instead ofwindow.__TAURI_POST_MESSAGE__. -
12b8d18b(#7875) - Removedtauri::path::Errorand added its variants totauri::Error- Removed
tauri::path::Resultandtauri::plugin::Resultaliases, you should usetauri::Resultor your ownResulttype.
- Removed
-
8b166e9b(#7949) ChangedTAURI_AUTOMATIONtoTAURI_WEBVIEW_AUTOMATION -
2558fab8(#7939) This release contains a number of breaking changes to improve the consistency of tauri internals and the public facing APIs and simplifying the types where applicable:- Removed
EventHandlertype. - Added
EventIdtype - Changed
Manager::listen_globalandWindow::listento return the newEventIdtype instead ofEventHandler. - Removed the return type of
Manager::once_globalandWindow::once - Changed
Manager::unlistenandWindow::unlistento take he newEventIdtype. - Added
tauri::scope::ScopeEventId - Changed
FsScope::listento return the newScopeEventIdinstead ofUuid. - Added
FsScope::unlisten
- Removed
[2.0.0-alpha.15]
Enhancements
b597aa5f(#7871) Setmainas the defaultidfor the tray icon registered from the configuration file, so if theidis not specified, it can be retrieved usingapp.tray_by_id("main").
Bug Fixes
a2021c30(#7866) ChangedIconMenuItem::set_native_iconsignature to take&selfinstead of&mut selfto fix compilation error on macos.a68ccaf5(#7822) Fixassetprotocol failing to fetch files.6fbd6dba(#17) Fix the validation ofstd::env::current_exewarn the user if AppImage is not mounted instead of panicking
Dependencies
- Upgraded to
tauri-macros@2.0.0-alpha.8 - Upgraded to
tauri-utils@2.0.0-alpha.8 - Upgraded to
tauri-build@2.0.0-alpha.9 - Upgraded to
tauri-runtime@1.0.0-alpha.2 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.3
Breaking Changes
-
092a561c(#7874) Removedtauri::apimodule as most apis have been moved to either a plugin or we recommend using other crates. -
deea9436(#7876) ChangedEnv.argstoEnv.args_osand now usesOsStringinstead ofString -
b7fd88e1(#7944)tauri::scopemodule is recieving a couple of consistency changes:- Added
tauri::scope::fsmodule. - Removed
scope::IpcScopere-export, usescope::ipc::Scope. - Removed
FsScope,GlobPatternandFsScopeEvent, usescope::fs::Scope,scope::fs::Patternandscope::fs::Eventrespectively.
- Added
-
c0d03af4(#7943) ChangedTrayIconBuilder/TrayIcon::on_tray_eventtoTrayIconBuilder/TrayIcon::on_tray_icon_eventfor consistency of naming.
[2.0.0-alpha.14]
Bug Fixes
Dependencies
- Upgraded to
tauri-runtime-wry@1.0.0-alpha.2
Breaking Changes
[2.0.0-alpha.13]
Breaking Changes
[2.0.0-alpha.12]
Enhancements
8a676617(#7618) Ensure Builder is Send by requiring the menu closure to be Send.0d63732b(#7754) AddedBuilder::register_asynchronous_uri_scheme_protocolto allow resolving a custom URI scheme protocol request asynchronously to prevent blocking the main thread.
Bug Fixes
0d63732b(#7754) Fixes invalid header value type when requesting IPC body through a channel.e98393e4(#7673) No longer unpacking and flattening thepayloadover the IPC so that commands with arguments calledcmd,callback,error,optionsorpayloadaren't breaking the IPC.29818de6(#7662) Fixes IPC failing to communicate for remote URLs on macOS and iOS.
What's Changed
Dependencies
- Upgraded to
tauri-runtime@1.0.0-alpha.1 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.1
Breaking Changes
0d63732b(#7754) ChangedBuilder::register_uri_scheme_protocolto return ahttp::Responseinstead ofResult<http::Response>. To return an error response, manually create a response with status code >= 400.0d63732b(#7754)tauri-runtimeno longer implements its own HTTP types and relies on thehttpcrate instead.0d63732b(#7754) ChangedBuilder::invoke_systemto take references instead of owned values.5c95152c(#7621) ChangedMenuBuilder\SubmenuBuilder::text,MenuBuilder\SubmenuBuilder::check,MenuBuilder\SubmenuBuilder::iconandMenuBuilder\SubmenuBuilder::native_iconto take anidas the first argument.0d63732b(#7754) ChangedWindow::on_messagesignature to take a responder closure instead of returning the response object in order to asynchronously process the request.
[2.0.0-alpha.11]
New Features
4db363a0(#6589) Addedvisible_on_all_workspacesconfiguration option toWindowBuilder,Window, andWindowConfig.84c41597(#6394) AddApp::primary_monitor,App::available_monitors,AppHandle::primary_monitor, andAppHandle::available_monitors2a000e15(#7235) AddedWindow::navigate.3b98141a(#3736) Added support to file associations.3a2c3e74(#7306) AddedPluginBuilder::on_navigation. AddedPlugin::on_navigation.753900dd(#7440) ExposeRunEvent::Openedon macOS and iOS for deep link support.7fb419c3(#7535) AddApp::cleanup_before_exitandAppHandle::cleanup_before_exitto manually call the cleanup logic. You should always exit the tauri app immediately after this function returns and not use any tauri-related APIs.7fb419c3(#7535) On Linux, addWindow::default_vboxto get a reference to thegtk::Boxthat contains the menu bar and the webview.7fb419c3(#7535) Addlinux-libxdofeature flag (disabled by default) to enable linking tolibxdowhich is used to makeCut,Copy,PasteandSelectAllnative menu items work on Linux.7fb419c3(#7535) On macOS, addWindow::ns_viewto get a pointer to the NSWindow content view.7fb419c3(#7535) Exposerun_on_main_threadmethod onAppthat is similar toAppHandle::run_on_main_thread.
Enhancements
a5752db9(#7436) Listen toonNewIntentand forward it to registered plugins.fbeb5b91(#7170) AddedChannel::newallowing communication from a mobile plugin with Rust.fbeb5b91(#7170) Use custom protocols on the IPC implementation to enhance performance.
Dependencies
- Upgraded to
tauri-runtime@1.0.0-alpha.0 - Upgraded to
tauri-utils@2.0.0-alpha.7 - Upgraded to
tauri-macros@2.0.0-alpha.7 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.0 - Upgraded to
tauri-build@2.0.0-alpha.7 d1a6e2f3(#7252) Updatestateto v0.6.
Breaking Changes
-
fd5dc788(#7352) - Removedtauri::api::fileandtauri::api::dirmodules, usestd::fsinstead.- Removed
tauri::api::versionmodule, usesemvercrate instead.
- Removed
-
fbeb5b91(#7170) Movedtauri::api::ipctotauri::ipcand refactored all types. -
fbeb5b91(#7170) Removed thelinux-protocol-headersfeature (now always enabled) and addedlinux-ipc-protocol. -
7fb419c3(#7535) ChangedApp::handleandManager::app_handleto return a reference to anAppHandleinstead of an owned value. -
7fb419c3(#7535) The tray icon and menu have received a huge refactor with a lot of breaking changes in order to add new functionalities and improve the DX around using them and here is an overview of the changes:- All menu and tray types are now exported from
tauri::menuandtauri::traymodules with new names so make sure to check the new types. - Removed
tauri::Builder::system_tray, instead you should usetauri::tray::TrayIconBuilderinsidetauri::Builder::setuphook to create your tray icons. - Changed
tauri::Builder::menuto be a function to accommodate for new menu changes, you can passetauri::menu::Menu::defaultto it to create a default menu. - Renamed
tauri::Contextmethodssystem_tray_icon,tauri::Context::system_tray_icon_mutandtauri::Context::set_system_tray_icontotauri::Context::tray_icon,tauri::Context::tray_icon_mutandtauri::Context::set_tray_iconto be consistent with new type names. - Added
RunEvent::MenuEventandRunEvent::TrayIconEvent. - Added
App/AppHandle::set_menu,App/AppHandle::remove_menu,App/AppHandle::show_menu,App/AppHandle::hide_menuandApp/AppHandle::menuto access, remove, hide or show the app-wide menu that is used as the global menu on macOS and on all windows that don't have a specific menu set for it on Windows and Linux. - Added
Window::set_menu,Window::remove_menu,Window::show_menu,Window::hide_menu,Window::is_menu_visibleandWindow::menuto access, remove, hide or show the menu on this window. - Added
Window::popup_menuandWindow::popup_menu_atto show a context menu on the window at the cursor position or at a specific position. You can also popup a context menu usingpopupandpopup_atmethods fromContextMenutrait which is implemented forMenuandSubmenutypes. - Added
App/AppHandle::tray,App/AppHandle::tray_by_id,App/AppHandle::remove_trayandApp/AppHandle::remove_tray_by_idto access or remove a registered tray. - Added
WindowBuilder/App/AppHandle::on_menu_eventto register a new menu event handler. - Added
App/AppHandle::on_tray_icon_eventto register a new tray event handler.
- All menu and tray types are now exported from
-
7fb419c3(#7535) Renamedsystem-trayfeature flag totray-icon. -
3a2c3e74(#7306) TheWindow#on_navigationclosure now receives a&Urlargument instead ofUrl.
[2.0.0-alpha.10]
New Features
f2d68cf7(#6767) Addincognitooption to the window configuration object.f2d68cf7(#6767) AddWindowBuilder::incognitoe0f0dce2(#6442) Added thewindow_effectsoption when creating a window andWindow::set_effectsto change it at runtime.
Enhancements
2d2fd6ab(#7191) Use correct HTTP method when making requests to the proxied server on mobile.b66e7d60(#7174) ImplementCloneforChannel8124145d(#7171) Fixes path commands not being added.4652c446(#7144) Addtemp_dirmethod toPathResolver
Bug Fixes
[2.0.0-alpha.9]
256c30c7(#6863) Enhance parsing of annotated Android plugin methods to support private functions.73c803a5(#6837) Added static functionloadConfigon the AndroidPluginManagerclass.edb16d13(#6831) Adjust Android plugin exception error.0ab5f40d(#6813) Add channel API for sending data across the IPC.31444ac1(#6725) On Android, update proguard rules.8ce32e74(#6986) Adddefault_window_icongetter onAppandAppHandle.2a5175a8(#6779) Enhance Android'sJSObjectreturn types.bb2a8ccf(#6830) Use actual iOS plugin instance to run command withthrows.94224906(#6783) GenerateTauriActivityKotlin class on the build script.7a4b1fb9(#6839) Added support to attibutes for each command path in thegenerate_handlermacro.9a79dc08(#6947) Removeenable_tauri_apifrom the IPC scope.dfa407ff(#6763) Expose plugin configuration on the Android and iOS plugin classes.3245d14b(#6895) Moved theappfeature to its own plugin in the plugins-workspace repository.09376af5(#6704) Moved theclifeature to its own plugin in the plugins-workspace repository.2d5378bf(#6717) Moved the dialog APIs to its own plugin in the plugins-workspace repository.39f1b04f(#6943) Moved theeventJS APIs to a plugin.fc4d687e(#6716) Moved the file system APIs to its own plugin in the plugins-workspace repository.f78a3783(#6742) Moved thehttpfeature to its own plugin in the plugins-workspace repository.29ce9ce2(#6902) Moved theosfeature to its own plugin in the plugins-workspace repository.60cf9ed2(#6905) Moved theprocessfeature to its own plugin in the plugins-workspace repository.e1e85dc2(#6925) Moved theprotocolscope configuration to theasset_protocolfield inSecurityConfig.96639ca2(#6749) Moved theshellfunctionality to its own plugin in the plugins-workspace repository.e1e85dc2(#6925) Moved the updater configuration to theBundleConfig.b072daa3(#6919) Moved theupdaterfeature to its own plugin in the plugins-workspace repository.3188f376(#6883) Bump the MSRV to 1.65.d693e526(#6780) Added theonNewIntentPlugin hook on Android.34b8f339(#6705) Addappmethod for thePluginApistruct.96639ca2(#6749) Moved thetauri::api::processmodule totauri::process.cdad6e08(#6774) Changed how thetauri-androiddependency is injected. This requires thegen/androidproject to be recreated.e1e85dc2(#6925) Removed the allowlist configuration.cebd7526(#6728) Moved theclipboardfeature to its own plugin in the plugins-workspace repository.e1e85dc2(#6925) Removed extract and move APIs fromtauri::api::file.3f17ee82(#6737) Moved theglobal-shortcutfeature to its own plugin in the plugins-workspace repository.ae102980(#6719) Refactor theContextconditional fields and only parse the tray icon on desktop.2d5378bf(#6717) Remove the updater's dialog option.e1e85dc2(#6925) RemovedUpdaterEvent. Seetauri-plugin-updaterfor new usage.9a79dc08(#6947) Moved thewindowJS APIs to its own plugin in the plugins-workspace repository.22a76338(#6713) ExposeSafePathBuftype intauri::path.c4171152(#6909) Enable shadows by default.dfa407ff(#6763) Change iOS plugin init function signature tofunc init_plugin() -> Plugin.
[2.0.0-alpha.8]
- Fixes boolean plugin parameters freezing the application.
[2.0.0-alpha.7]
- Change minimum Android SDK version to 21 for the plugin library.
- Improve the
run_mobile_pluginfunction error handling. - Implement
Cloneforplugin::PluginHandle.
[2.0.0-alpha.6]
- Fix compilation issues without the shell API features.
[2.0.0-alpha.5]
- Fixes ProGuard rules.
- Added
rawencoding option to read stdout and stderr raw bytes.- f992e7f5 chore(changes): readd change file on 2023-04-03
- Renamed the
default-tlsfeature tonative-tlsand addedrustls-tlsfeature.
[2.0.0-alpha.4]
- Allow a wry plugin to be registered at runtime.
- Inject
proguard-tauri.profile in the Android project. - Return
boolin the invoke handler. - Use correct lib name in xcode project.
- Run Android and iOS native plugins on the invoke handler if a Rust plugin command is not found.
- Added
initialize_android_pluginandinitialize_ios_pluginAPIs onAppHandle. - Changed the plugin setup hook to take a second argument of type
PluginApi. - Refactored the implementation of the
mobile_entry_pointmacro. - Removed the attohttpc client. The
reqwest-*Cargo features were also removed. - Added
App::run_mobile_pluginandAppHandle::run_mobile_plugin. - Added the
shadowoption when creating a window andWindow::set_shadow. - Implemented
with_webviewon Android and iOS.
[2.0.0-alpha.3]
- Update gtk to 0.16.
- Show all application logs on iOS.
- Bump the MSRV to 1.64.
- Only proxy the dev server on mobile to simplify desktop usage.
- Removed mobile logging initialization, which will be handled by
tauri-plugin-log. - Update rfd to 0.11.
[2.0.0-alpha.2]
- Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when
recursiveoption wasfalse.- 9ad0a9a0 Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22
[2.0.0-alpha.1]
- Implement response cache on the dev server proxy, used when the server responds with status 304.
- Properly proxy dev server requests with query strings and fragments.
[2.0.0-alpha.0]
- Added the
default-tlsandreqwest-default-tlsCargo features for enabling TLS suppport to connect over HTTPS. - Breaking change: Use the custom protocol as a proxy to the development server on all platforms except Linux.
- Support
with_webviewfor Android platform alowing execution of JNI code in context. - First mobile alpha release!
- Breaking change: The window creation and setup hook are now called when the event loop is ready.
- Export types required by the
mobile_entry_pointmacro.
[1.6.0]
New Features
Enhancements
8ce51cec(#7718) On Windows, retain command line args when relaunching the app after an update. Supports NSIS and WiX (without elevated update task).
Bug Fixes
cc3d8e77(#8539) Fixes a deadlock when reading a stdout or stderr line returns an error.b546b42d(#8577) Preserve the order of JS object/map keys in IPC calls. This also fixes issues with the JShttpmodule when calling to servers that required a specific order ofFormBodycontents.8f8729d9(#8312) On macOS, allow cancelling maximization when doubleclick happens ondata-tauri-drag-regionby simply keeping the left moust button pressed and then moving the mouse away of the starting position of the click, which is consistent with the native behavior of macOS.
Dependencies
- Upgraded to
tauri-runtime-wry@0.14.4
[1.5.4]
Enhancements
Bug Fixes
50a3d170(#8408) On Windows, fixopendialogdefaultPath, when invoked from JS, not working if the path uses forward slash (/)645e1dcc(#8404) Fix NSIS updater failing to launch when usingbasicUimode.
Dependencies
- Upgraded to
tauri-runtime-wry@0.14.3 - Upgraded to
tauri-utils@1.5.2 - Upgraded to
tauri-runtime@0.14.2 - Upgraded to
tauri-macros@1.4.3
[1.5.3]
Enhancements
b3e53e72(#8288) AddedAssetResolver::iterto iterate on all embedded assets.5e05236b(#8289) Added tracing for window startup, plugins,Window::eval, events, IPC, updater and custom protocol request handlers behind thetracingfeature flag.
Bug Fixes
2ba88563(#8095) Fix docs.rs build forx86_64-apple-darwin.4b6a602a(#8234) Escape path of the updater msi to avoid crashing on installers with spaces.
Dependencies
- Upgraded to
tauri-runtime-wry@0.14.2 - Upgraded to
tauri-macros@1.4.2
[1.5.2]
Bug Fixes
21cdbb41(#7982) Set the correcttruncateoption onOpenOptionsso thatwrite_filecan completely overwrite existing files.
[1.5.1]
Bug Fixes
[1.5.0]
New Features
eeb6be54(#7512) Addtauri::Manager::emit_filterand only serialize once when emitting to multiple windows.6c408b73(#7269) Add option to specify notification sound.fdaee9a5(#7350) Addtauri::plugin::Builder::register_uri_scheme_protocol10e362d0(#7432) AddedUpdateBuilder::endpointsto add request endpoints at runtime.10e362d0(#7432) AddedUpdateResponse::headerandUpdateResponse::remove_headerto modify the update download request headers.
Enhancements
757e959e(#7344) Open links externally when<base target="_blank" />existsc9827338(#7416) EnhancereadDirAPI error with path information.58d6b899(#7636) Addappendoption toFsOptionsin thefsJS module, used inwriteTextFileandwriteBinaryFile, to be able to append to existing files instead of overwriting it.9aa34ada(#7645) Add setting to switch tohttp://<scheme>.localhost/for custom protocols on Windows.
Bug Fixes
4bf1e85e(#7722) Properly respect thefocusedoption when creating the webview.0797a002(#7746) On macOS, fixed tapping on custom title bar doesn't maximize the window.1a3dcdb8(#7185) On Windows, fix NSIS installers requiring administrator rights failing to be launched by updater.fa7f9b77(#7341) Fix updater not following endpoint redirects.6fbd6dba(#17) Fix the validation ofstd::env::current_exewarn the user if AppImage is not mounted instead of panicking
Dependencies
- Upgraded to
tauri-utils@1.5.0 - Upgraded to
tauri-runtime-wry@0.14.1 - Upgraded to
tauri-runtime@0.14.1 - Upgraded to
tauri-macros@1.4.1
[1.4.1]
Bug Fixes
6afd3472(#6680) Revert #6680 which added a default sound for notifications on Windows. This introduced inconsistency with other platforms that has silent notifications by default. In the upcoming releases, we will add support for modifying the notification sound across all platforms.
Security fixes
066c09a6(#7227) Fix regression in1.4where the default behavior of the file system scope was changed to allow reading hidden files and directories by default.
[1.4.0]
New Features
7c237209(#6546) Addedtauri::VERSIONconst to get Tauri's version from Rust.4c39e46a(#7026) Addedtauri::webview_version, to get webview version.359058ce(#5939) Addtauri::api::os::localefunction to get the system locale.c4d6fb4b(#2353) Added themaximizable,minimizableandclosableoptions to the window builder.c4d6fb4b(#2353) Added theset_maximizable,set_minimizable,set_closable,is_maximizable,is_minimizableandis_closablemethods onWindow.1d99f8a3(#4752) Expose thetestmodule behind thetestCargo feature.000104bc(#6472) AddWindow::is_focusedandManager::get_focused_windowgetters.441f9646(#5491) AddMenuHandle::try_get_itemandSystemTrayHandle::try_get_itemwhich returns aOptioninstead of panicking.
Enhancements
45330e38(#6375) Enhance theassetprotocol to support streaming of large files.df89ccc1(#6955) Supportpassivemode for NSIS updater.cd3846c8(#6955) Restart the app after the NSIS updater is finished.db7c5fbf(#7143) Removeattohttpcin favor ofreqwest.d2710e9d(#6944) Unpintime,ignore, andwinnowcrate versions. Developers now have to pin crates if needed themselves. A list of crates that need pinning to adhere to Tauri's MSRV will be visible in Tauri's GitHub workflow: https://github.com/tauri-apps/tauri/blob/dev/.github/workflows/test-core.yml#L85.5d85d099(#7128) Send updater status events even if default dialog is enabled.
Bug Fixes
82169e69(#5208) Fix parsingallowlist > http > scopeurls that added a trailing slash which broke matching the incoming requests url.b41b57eb(#7105) Fix panics when registering an invalid global shortcuts or checking it is registered and return proper errors instead.aecf1469(#6889) Fix IPC failing after a failed navigation to an external URL.076e1a81(#7119) Fix unlistening to window events failing sometimes.3f35b452(#4080) FixWindowBuilder::on_navigationhandler not registered properly.0503eb69(#7078) On macOS and Linux, fix app crashing when creating a window withdata:uri.3700793a(#6934) EmitUPTODATEupdate status to javascript when the updater server returns status code204ff5e4dbb(#6794) Fix some configurations not applied when creating the window through Javascript.65fd674f(#6652) Play a sound when showing a notification on Windows.696d77c3(#4493) Fixes global events not being received on window-specific event listeners.
[1.3.0]
- Added the
additional_browser_argsoption when creating a window. - Fix passing
--profileto cargo intauri buildcausing conflict with--releasepassed by the CLI. - Added the
content_protectedoption when creating a window andWindow::set_content_protectedto change it at runtime. - Fix serialization of js
Mapwhen used ininvoke. - Added
Window::on_navigation. - Sync
__TAURI_METADATA__.__windowsacross all windows. - Fix
UpdaterBuilder::checkreturning a parsing error when204is sent from server where it should instead return aUpToDateerror. - Added
OkWithLabelandOkCancelWithLabelsvariants to theapi::dialog::MessageDialogButtonsenum to set the text of the dialog buttons. - Added
Builder::device_event_filterandApp::set_device_event_filtermethods. - Fix resize glitch when double clicking a custom titlebar in the top resize area.
- Fixes tray events not being delivered.
- Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when
recursiveoption wasfalse.- 72389b00 Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22
- Add
is_minimized()window method. - Bump minimum supported Rust version to 1.60.
- Update the
opencrate to v3.2 to fix an URL encoding bug on Windows. - Added support to
mailto:andtel:links on the shell API. - Pin
os_infoto=3.5. - Pin raw-window-handle to 0.5.0 to keep MSRV.
- Pin
timeto0.3.15. - Added configuration to specify remote URLs allowed to access the IPC.
- Add
titlegetter on window. - Implement
SystemTray::with_tooltipandSystemTrayHandle::set_tooltipfor Windows and macOS. - Added window's
url()getter. - On Windows, change webview theme based on Window theme for more accurate
prefers-color-schemesupport. - Add a method to the
WindowBuilderstruct to recreate windows from tauri.conf.json configurations. - On Windows, Fix missing
WindowEvent::FocusedinApp::runcallback. - Pin
winnowcrate to 0.4.1 to keep the 1.60 MSRV.
[1.2.5]
- Block remote URLs from accessing the IPC.
- 9c0593c33 feat(core): block remote URLs from accessing the IPC on 2023-04-12
[1.2.4]
- Pin
ignoreto=0.4.18.- adcb082b chore(deps): pin
ignoreto =0.4.18 on 2023-01-17
- adcb082b chore(deps): pin
[1.2.3]
- Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when
recursiveoption wasfalse.- f1b0ad6e Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22
[1.2.2]
- Invoke event listener in windows safely to avoid causing uncaught errors in windows that have loaded external urls
- Cleanup sidecar and tray icons when calling
app.exit()from JS. - Fix compatibility with older Linux distributions.
- Add
tauri::Builder::enable_macos_default_menuto enable or disable the default menu creation on macOS.
[1.2.1]
- Fixes a double serialization on the IPC.
- Moved the custom protocol headers support on Linux behind the
linux-protocol-headersCargo feature to enhance compatibility with older Linux distributions. - Fixes definition of
impl HasRawDisplayHandleforAppHandleandApp.
[1.2.0]
- Add
accept_first_mouseoption for macOS windows. - Add new app-specific
BaseDirectoryenum variantsAppConfig,AppData,AppLocalData,AppCacheandAppLogalong with equivalent functions inpathmodule and deprecated ambiguous variantsLogandAppalong with their equivalent functions inpathmodule. - Set the correct mimetype when streaming files through
asset:protocol- 39443b43 fix(core): set correct mimetype for asset protocol streams, closes #5203 (#5210) on 2022-09-30
- 2d9c2b47 Revert "fix(core): set correct mimetype for asset protocol streams, closes #5203 (#5210)" on 2022-09-30
- 9b1a6a1c fix(core): set correct mimetype for asset protocol streams, #5203 (#5536) on 2022-11-04
- Disable automatic window tabbing on macOS when the
tabbing_identifieroption is not defined, the window is transparent or does not have decorations. - The custom protocol now validates the request URI. This has implications when using the
assetprotocol without theconvertFileSrchelper, the URL must now use theasset://localhost/$filePathformat. - Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
- Properly emit events with object payload.
- Fixes access to the
WebviewWindow.getByLabelfunction in atauri://window-createdevent listener. - Fixes resource reading being always rejected by the scope.
- Fixes
__TAURI_PATTERN__object freeze. - Readd the option to create an unfocused window via the
focusedmethod. Thefocusfunction has been deprecated. - Add
hidden_titleoption for macOS windows. - Custom protocol headers are now implemented on Linux when running on webkit2gtk 2.36 or above.
- Add
App::show(),AppHandle::show(),App::hide()andAppHandle::hide()for hiding/showing the entire application on macOS. - Fix a deadlock when modifying the menu in the
on_menu_eventclosure. - Resolve base system directory in shell scope.
- Added
tabbing_identifierto the window builder on macOS. - Add
title_bar_styleoption for macOS windows. - Added methods to set the system tray title on macOS.
- Added the
user_agentoption when creating a window.
[1.1.4]
- Block remote URLs from accessing the IPC.
- 58ea0b452 feat(core): block remote URLs from accessing the IPC on 2023-04-12
[1.1.3]
- Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when
recursiveoption wasfalse.- 2654c0f4 Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22
[1.1.2]
- Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
[1.1.1]
- Add missing allowlist config for
set_cursor_grab,set_cursor_visible,set_cursor_iconandset_cursor_positionAPIs.
[1.1.0]
- Implement
api::http::ClientBuilder::max_redirectionsfor the default attohttpc client. - Implement
From<api::process::Command> for std::process::Command. - Added support to configuration files in TOML format (Tauri.toml file).
- Enhance
SystemTray::with_iconto accepttauri::Icon. - Fixes CLI parser ignoring inner subcommands.
- Fix
fs.readDirrecursive option reading symlinked directories that are not allowed by the scope. - Fix typo in invalid state access panic message.
- Fixes updater breaking the app icon in Finder.
- Implement theme APIs for Linux.
- Implement
raw_window_handle::HasRawDisplayHandleforAppandAppHandle - Retain command line arguments in
api::process::restart. - Added APIs to create a system tray at runtime.
- Add
api::Command::encodingmethod to set the stdout/stderr encoding. - Do not follow redirects when
api::http::ClientBuilder::max_redirectionsis0. - Added the
SystemTrayHandle::destroymethod. - Added
native-tls-vendoredandreqwest-native-tls-vendoredCargo features to compile and statically link to a vendored copy of OpenSSL on Linux. - Update windows to 0.39.0 and webview2-com to 0.19.1.
- Add
existsfunction to the fs module.
[1.0.9]
- Block remote URLs from accessing the IPC.
- fa90214b0 feat(core): block remote URLs from accessing the IPC on 2023-04-12
[1.0.8]
- Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when
recursiveoption wasfalse.- f0602e7c Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22
[1.0.7]
- Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
[1.0.6]
- Fix
fs.readDirrecursive option reading symlinked directories that are not allowed by the scope.
[1.0.5]
- Escape the MSI file path when running msiexec via powershell.
[1.0.4]
- Reduce the amount of allocations when converting cases.
[1.0.3]
tauri::Builderwill now include a default menu for macOS without explicitly usingMenu::os_default, you can still override it throughtauri::Builder::menuor remove it usingtauri::Builder::enable_macos_default_menu(false).- Use
toString()on message/confirm/ask dialogs title and message values. - Fix stack overflow on Windows on commands by changing the implementation of the
async_runtime::spawnmethod. - Emits RunEvent::Exit prior to killing child processes managed by Tauri, allowing graceful shutdown of sidecar binaries.
- Added option to disable tray menu on left click on macOS.
- Only run the updater default dialog mode in supported platforms or development mode.
- Configure the updater to relaunch after installing the update on Windows.
[1.0.2]
- Fixes check for local URL when an external URL is provided to the window and it is based on the configured devPath.
[1.0.1]
- Added
fn newconstructors forPhysicalSize,LogicalSize,PhysicalPositionandLogicalPositionand missing conversion methods. - Set the bundle name and app metadata in the Info.plist file in development mode.
- 38f5db6e feat(codegen): fill app metadata in development Info.plist on 2022-06-21
- Set the application icon in development mode on macOS.
- Fixes the error message when using the
window.unminimizeAPI without enabling it in the allowlist. - Initialize Tauri script when
devPathis an external URL with path. - Fixes deadlock when a plugin window ready event needs to block the thread waiting on the event loop.
- Adjust the updater to fallback to
$HOME/.cacheor the current working directory as temp directory if the system default is in a different mount point. - Properly fill the origin window when using
emit_toandemit_allfromWindow. - Implement
raw_window_handle::HasRawWindowHandleon Linux. - Added
on_drophook to theplugin::Builder. - Refactored the
tauri-runtime-wryplugin interface. - Added
AppHandle::remove_plugin. - The theme API is now implemented on macOS 10.14+.
- Suppress unused variable warning in release builds.
- Update tao to 0.12 and wry to 0.19.
- Added
Notification::notifyAPI behind thewindows7-compatCargo feature, which includes Windows 7 support.
[1.0.0]
- Allow choosing multiple folders in
dialog.open. - Upgrade to
stable!
[1.0.0-rc.17]
- Add
Menu::os_defaultwhich will create a menu filled with default menu items and submenus.
[1.0.0-rc.16]
- Breaking change: The
TrayIconenum has been removed and nowIconis used instead. This allows you to use more image formats and use embedded icons on Linux.
[1.0.0-rc.15]
- Fixes filesystem scope check when using the HTTP API to upload files.
- Fixes a memory leak in the command system.
- Fixes the
Content-Typeheader value when sending multipart requests using thereqwest-clientfeature. - Kill sidecar processes on app exit even when only the
shell-sidecarfeature is enabled. - Fixes a crash when a request is made to
https://tauri.$URLon Windows where$URLis notlocalhost/**e.g.https://tauri.app. - Set notification icon to app icon on Linux.
- Breaking change: Revert the window creation to be blocking in the main thread. This ensures the window is created before using other methods, but has an issue on Windows where the program deadlocks when creating a window in a Tauri command if it is not
async. The documentation now states that commands must beasyncin other to prevent it until the issue is fixed in Webview2. - No longer ask for permission to send notifications and always allow it.
- Breaking change: Removed the
settingsmodule. - Breaking change: Removed the
gtk-trayandayatana-trayCargo features. - Call
preventDefault()in the mousedown event handler for[data-tauri-drag-region]elements. - Set permission to
0o700for the tmp folder used to move the current AppImage on the updater process.
[1.0.0-rc.14]
- Breaking change:
PackageInfo::versionis now asemver::Versioninstead of aString. - Breaking change:
UpdateBuilder::should_updatenow takes the current version as asemver::Versionand aRemoteReleasestruct, allowing you to check other release fields. - Breaking change: The
tauri::UpdaterEvent::UpdateEventdate field is now anOption<time::OffsetDateTime>. - Breaking change: The updater response
pub_datenow must be a valid RFC 3339 string.
[1.0.0-rc.13]
- Fix
cannot find macro `message_dialog`error.
[1.0.0-rc.12]
- Expose option to set the dialog type.
- Expose
titleoption in the message dialog API. - Immediately create windows when using
tauri::Appas manager. - Account the monitor position when centering a window.
- Allow the canonical, absolute form of a path for the filesystem scope on Windows if
std::fs::canonicalizereturns a path, fallback to\\?\$PATH. - Fixes updater documentation not showing on docs.rs.
- Fixes HTTP timeout not working on Windows when using the
attohttpcclient. - Update
windows-rsto0.37.0, which requires Rust 1.61.0+. - Breaking change: The
WindowBuilderstruct now has a lifetime annotationWindowBuilder<R: Runtime, 'a>.
[1.0.0-rc.11]
- Added the
App::get_cli_matcheshelper function. - Fixes
fileDropEnabledoption not working. - Prepare window icon and menu even when loading remote URLs. Previously it was behind a
is local URL?condition. - Fix
.mjsnot being recognised as a file extension for JavaScript files (text/javascript). - Added
PathResolver::resolve_resourceAPI. - Allow configuring the display options for the MSI execution allowing quieter updates.
[1.0.0-rc.10]
- Update wry to 0.16.2 and webkit2gtk to 0.18.0.
- Adds the
App#wry_pluginAPI to inject a plugin for the wry integration.
[1.0.0-rc.9]
- The
dangerous_allow_asset_csp_modificationconfiguration value has been changed to allow a list of CSP directives to disable. - The file drop event payloads are now percent-decoded.
- Fix dialog crash on macOS when the
default_pathvalue is just the file name. - Fixes the
titleoption being ignored in the dialog API endpoints. - Fixes nested isolation iframe injection.
- Deserialize numeric values (seconds) in the http API
ClientBuilder.connect_timeoutandHttpRequestBuilder.timeoutfields. - Fix updater dialog removing single and double quotes from the release notes
- Expose methods to access the underlying native handles of the webview.
[1.0.0-rc.8]
- Breaking change: Removed the
ayatana-trayfrom the default features. You must select one ofayatana-trayandgtk-trayto use system tray on Linux. - Re-export the
GlobalShortcutManagerwhen theglobal-shortcutfeature is enabled. - Fixes
docs.rsdocumentation build.
[1.0.0-rc.7]
- Breaking change: Removed
tauri::api::file::ArchiveFormat::Plain. - Fallback to
{path}.htmlwhen{path}is not found in the Tauri custom protocol handler. - Breaking change: Use ayatana-appindicator for Linux system tray by default. Use the
gtk-trayCargo feature to uselibappindicatorinstead. - Reduce the amount of generated code for the API endpoints.
- *Breaking change:: Added the
clipboardCargo feature. - Breaking change: The process Command API stdio lines now includes the trailing
\r. - Expose Window cursor APIs
set_cursor_grab,set_cursor_visible,set_cursor_iconandset_cursor_position. - Breaking change: The
tauri::api::file::Extract#extract_filefunction has been moved totauri::api::file::Entry#extract. - Breaking change: The
tauri::api::file::Extract#filesfunction has been renamed towith_filesfor performance reasons. - Improved the performance of the
tauri::api::fs::ExtractAPI. - Fixes a panic when using the
create_tao_windowAPI. - Fixes the HTTP API form text fields.
- Set the application bundle identifier for the notifications on macOS.
- Fixes a panic when a menu event is triggered when all windows are minimized on macOS.
- Fixes a rendering issue when resizing the window with the devtools open.
- Fixes the
WindowBuilderexport. - The HTTP API now supports
multipart/form-datarequests. You need to set theContent-Typeheader and enable thehttp-multipartCargo feature. - *Breaking change:: Added the
global-shortcutCargo feature. - Added
tauri::api::http::HttpRequestBuilder#headermethod. - Breaking change: The
tauri::api::http::HttpRequestBuilder#headersmethod now takesheader::HeaderMapinstead of aHashMap. - Breaking change: The
tauri::api::http::Response#headersmethod now returns&header::HeaderMapinstead of&HashMap. - Breaking change: The
api::httptimeouts are now represented asstd::time::Durationinstead of au64. - Breaking change: The
tauri::api::http::FormPart::Bytesenum variant has been renamed toFilewith a value object{ file, mime, file_name }. - Breaking change: Removed
App::create_window,AppHandle::create_window,Builder::create_windowandWindow::create_window. - Breaking change: Removed
tauri::api::http::FormPart::File. - Added
WindowEvent::ThemeChanged(theme). - Added
themegetter onWindow. - Added
UpdateResponse::bodyandUpdateResponse::date. - Breaking change: Removed the
tauri::updater::Error::UnsupportedPlatformvariant and addedUnsupportedLinuxPackage,UnsupportedOsandUnsupportedArchfor better error information. - Add updater
Downloadedstatus event. - Allow setting app updater request headers via
AppHandle::updater().header(). - The updater default timeout is now unset, and the
UpdateBuilderhas atimeoutsetter. - Added
themesetter to the WindowBuilder.
[1.0.0-rc.6]
- Fixes the
WindowEventtype used onWindow::on_window_event. - Fixes
WindowEvent::Destroyednot firing.
[1.0.0-rc.5]
-
Added
updater_targetmethod to theBuilderstruct. -
Added an option to disable the CSP injection of distributable assets nonces and hashes.
-
Toggle devtools when
Ctrl + Shift + IorCommand + Option + Iis pressed. -
Use asynchronous file dialog on macOS and Windows to properly set the parent window.
-
The
Errorenum is nowSend + Sync. -
Do not allow path traversal on the asset protocol.
-
Properly apply the CSP when loading a route that fallbacks to index.html.
-
Fix CSP usage on Linux when changing it via the
on_web_resource_requesthandler.- f5efc248 fix(core): runtime CSP changes on Linux on 2022-03-07
-
Improved the updater response validation and error messages.
-
Breaking change: The
MenuItem::Aboutvariant is now associated with a tuple value(String, AboutMetadata). -
Replace multiple dependencies who's C code compiled concurrently and caused the other ones to bloat compile time significantly.
-
zstd->brotli -
blake3-> a vendored version of the blake3 reference -
ring->getrandom
See https://github.com/tauri-apps/tauri/pull/3773 for more information about these specific choices.
- 8661e3e2 replace dependencies with long build times when used together (closes #3571) (#3773) on 2022-03-27
- Breaking change: The
Window::hwndmethod now returns HWND fromwindows-rscrate instead of c_void on Windows. - Support window parenting on macOS
- Breaking change: The updater default targets have been renamed to include better support for different architectures.
- Breaking change: Removed
RunEvent::CloseRequestedandRunEvent::WindowClosedand addedRunEvent::WindowEvent. - Breaking change: Removed
window_labelfromRunEvent::ExitRequested. - Breaking change: The
tauri://events are no longer emitted to listeners usingWindow::listen. Use theApp::runclosure,Window::on_window_eventandWindow::on_menu_eventinstead. - The
App::setupclosure can now return a boxed error directly. - Implement
Debugfortauri::State. - Breaking change: The
Manager::managefunction now returns a bool indicating whether the type is already managed or not. - Set the
Access-Control-Allow-Originheader on thetauriprotocol response with the initial webview URL as value. - Breaking change: The
tauri_runtimecrate is no longer exported since its API is not stable. - Added
Tempto theBaseDirectoryenum. - Added
$TEMPto the allowed variables to the filesystem and asset protocol scopes. - Update
wryto0.14andtaoto0.7. - Added
updatermethod toAppandAppHandle, a builder to check for app updates. - Allow using a custom updater version checker via
App::updater().should_install(). - Added download progress events to the updater.
- Send updater events to the
App::runclosure. - Run the updater on startup even if no window was created.
- Properly fire the window destroyed event.
- Added
close_devtoolsandis_devtools_openAPIs to theWindowstruct. - Added the
WindowEvent::FileDropvariant. - Added a configuration flag for disallowing install downgrades on Windows. Breaking change: The default behavior on Windows is now to allow downgrades.
[1.0.0-rc.4]
- Run
AppHandlecleanup code before restarting the application on theprocess > relaunchAPI. - Breaking change: The
Builder#create_windowAPI now returns a Result validating the window label. - Added
tspconfig option undertauri > bundle > windows, which enables Time-Stamp Protocol (RFC 3161) for the timestamping server under code signing on Windows if set totrue. - Revert the
clapusage back to the version 3.0 API. - The
tauri::api::process::CommandAPI now properly reads stdout and stderr messages that ends with a carriage return (\r) instead of just a newline (\n). - Fixes filesystem and asset scope stripping the first component of the allowed path.
- Ignore trailing slashes on path scope validation.
- Fixes
Command::outputandCommand::statusdeadlock when running on async commands. - Update tray menu id map when
SystemTrayHandle::set_menuis called. - Allow absolute paths on the filesystem APIs as long as it does not include parent directory components.
- Breaking change: The
tauri::api::file::ExtractAPI is now available when thefs-extract-apifeature is enabled. - Allow listening to events on the filesystem and asset scopes.
- Allow configuring forbidden paths on the asset and filesystem scopes.
- Extend the allowed patterns for the filesystem and asset protocol when the user selects a path (dialog open and save commands and file drop on the window).
- The HTTP scope now matches the entire URL using a glob pattern instead of only its path.
- Parse window icons at compile time.
- Breaking change: Move
icoandpngparsing behindicon-icoandicon-pngCargo features. - Return an error when creating a window with an invalid label instead of panicking.
- Allows the configuration CSP to be an object mapping a directive name to its source list.
- Allow range in the form of
bytes=0-*on the asset protocol. - Reimplement endpoint to read file as string for performance.
- Breaking change: Renamed the
commandCargo feature toprocess-command-api. - Disabled the default features for the
zipcrate. - The
cmdfield is no longer required on the shell scope for sidecars. - Fixes a regression on the
unlistencommand. - Run
AppHandlecleanup code before restarting the application when a new update is installed. - Added a
WindowBuildertype. - Added
WindowBuilder::on_web_resource_request, which allows customizing the tauri custom protocol response.
[1.0.0-rc.3]
tauri::plugin::Builderclosures are no longer required to implementSync.- Added context to the file system endpoint errors.
- Changed the default value for
tauri > bundle > macOS > minimumSystemVersionto10.13.
[1.0.0-rc.2]
- Ease the requirements for plugin hooks.
setupandsetup_with_configcan now beFnOnceandon_webview_ready,on_eventandon_page_loadcan beFnMut. - Fixes an issue with the updater when replacing the
{{target}}and{{current_version}}variables due to percent-encoding on theUrlthat is parsed from the configuration.
[1.0.0-rc.1]
- Change default value for the
freezePrototypeconfiguration tofalse.
[1.0.0-rc.0]
- The dialog allowlist now includes flags for the
message,askandconfirmAPIs. -
- Breaking change: Renamed
tauri::Eventtotauri::RunEvent
- Breaking change: Renamed
- Exported
tauri::Eventandtauri::EventHandlerso you can define a function and pass it toWindow::listen - 15358b18 Expose event interface. fixes #2733 (#3321) on 2022-02-04
- The
tauri::apimoduleshttp,notification,dialog, andprocess::CommandAPIs are now hidden behind a feature flag,http-api,notification,dialogandcommand, respectively. - Add
titleoption to file open/save dialogs. - Added
any_thread()to thetauri::Builderto run applications on any thread (only exposed on Linux and Windows). - Enable CORS on the
assetprotocol. - The
asset://custom protocol is only defined when either theapi-all,protocol-allorprotocol-assetfeature flags are enabled. These feature flags are accessible with thetauri.conf.jsonallowlist. - Expose the
asset_resolverAPI on theAppandAppHandlestructs. - Breaking change: Refactored the types returned from the
async_runtimemodule. - Added
tauri::async_runtime::setmethod, allowing to share your tokio runtime with Tauri. - Added
tauri::async_runtime::spawn_blockingAPI. - The
callbackanderrorinvoke fields, along with othertransformCallbackusages, are now validated to be numeric. - Change
Error::ParseCliArguments(clap::Error)toError::ParseCliArguments(String)becauseclap::Erroris notSend. - The
api::process::CommandAPIs are now hidden behind thecommandfeature flag. - Add
tauri::api::path::log_dirfunction to access the suggested log directory path. - The
process,pathandupdaterAPIs now takes atauri::Envargument, used to force environment variables load on startup to prevent env var update attacks.- 7209fdf7 refactor(core): load APPIMAGE and APPDIR env vars on startup [TRI-007] [TRI-041] on 2022-01-09
- Now
resolve(),join()andnormalize()from thepathmodule, won't throw errors if the path doesn't exist, which matches NodeJS behavior. - Breaking change: Return
WindowonAppandAppHandle'screate_windowfunction. - Apply
noncetoscriptandstyletags and set them on theCSP(script-srcandstyle-srcfetch directives). - The path returned from
tauri::api::process::current_binaryis now cached when loading the binary. - Added an API to use a custom invoke system to receive and respond to commands (
Builder#invoke_system). - Inject configured
CSPondata:URLs. - Emit
tauri://*events to Rust listeners. - Emit
tauri://window-createdevent for windows created on the backend. - Enable non-session cookie persistence on Linux.
- Expose
tauri::api::ipc::{serialize_js_with, serialize_js}functions. - Resolve
assetprotocol HTTP request instead of panicking if the file does not exist or cannot be read. - Avoid
async_runtime::block_onpanics when used along another tokio runtime. - Prevent window closing if
tauri://close-requestedis listened on the JS layer. Users must callappWindow.close()manually when listening to that event. - Fixes a deadlock when creating a window from a menu event handler.
- Fixes the dialog
defaultPathusage on Linux. - Fixes
WindowEvent::FocusandWindowEvent::Blurevents not firing. - Fixes
tauri://focusandtauri://blurevents not firing. - Use webview's inner_size instead of window's value to get the correct size on macOS.
- Fixes resource directory resolution on Linux.
- Fixes the menu id mapping not reflecting the current window.
Manager::once_globalandWindow::onceallowFnOncecallbacks.- Properly check if document is loaded before invoking commands.
- Initialize system tray before windows so
tray_handlecan be accessed on command handlers.- dbe0d21b fix(core): initialize system tray before app windows on 2021-08-31
- Reimplement
remove_system_trayon Windows to drop theSystemTrayto run its cleanup code. - Immediately listen to
tauri://window-createdevent to catch it before the application triggers it. - The
tauri::Window#emitfunction now correctly sends the event to all windows that has a registered listener. Breaking change:Window#emit_and_triggerandWindow#emitnow requires the payload to be cloneable. - Allow using a fixed version for the Webview2 runtime via the
tauri > bundle > windows > webviewFixedRuntimePathconfig option. - The updater
pubkeyis now a required field for security reasons. Sign your updates with thetauri signercommand. tauri::api::HttpRequestBuilder::newnow returns aResultto validate the url.- Added the
isolationpattern.- d5d6d2ab Isolation Pattern (#43) Co-authored-by: Ngo Iok Ui (Wu Yu Wei) wusyong9104@gmail.com Co-authored-by: Lucas Fernandes Nogueira lucas@tauri.app on 2022-01-17
- Added
abortmethod totauri::async_runtime::JoinHandle. - Adds support for using JSON5 format for the
tauri.conf.jsonfile, along with also supporting the.json5extension.
Here is the logic flow that determines if JSON or JSON5 will be used to parse the config:
- Check if
tauri.conf.jsonexists a. Parse it withserde_jsonb. Parse it withjson5ifserde_jsonfails c. Return originalserde_jsonerror if all above steps failed - Check if
tauri.conf.json5exists a. Parse it withjson5b. Return error if all above steps failed - Return error if all above steps failed
- 995de57a Add seamless support for using JSON5 in the config file (#47) on 2022-02-03
- Allow preventing opening the default browser on a click on an
<a target="_blank">element viastopImmediatePropagation(). - The
run_returnAPI is now available on Linux. - Allow window, global shortcut and clipboard APIs to be called on the main thread.
- Add
Menu::with_itemsconstructor, taking an iterator ofMenuEntry. - The updater now expects signatures created with the latest CLI release.
- Change event loop callbacks definition to allow callers to move in mutable values.
- Fixes
Notification.requestPermission()deadlock.- 48f3768c fix(core):
Notification.requestPermission()deadlock regression on 2021-08-24
- 48f3768c fix(core):
- Added
Window#open_devtoolsAPI. - Add a
plugin::Builderstruct to make plugin creation more convenient. - Added
on_eventon thePlugintrait, which allows a plugin to react to the event loop. - Prevent path traversal on the file system APIs.
- Breaking change: Add
macos-private-apifeature flag, enabled viatauri.conf.json > tauri > macOSPrivateApi. - Add
raw_headerstotauri::api::http::ResponseData. - Implement
raw_window_handle::RawWindowHandlefortauri::WindowonWindowsandmacOS. Thetauri::api::dialog::window_parentfunction was removed since now you can use the window directly. - Refactor
create_tao_windowAPI to returnWeak<Window>instead ofArc<Window>.- c1494b35 refactor: return Weak on create_tao_window on 2021-08-31
- Added the
tauri::api::dialog::blockingmodule. - The notification endpoint now checks for the permission flag and requests if the value is not set.
- Breaking change: The
WindowEvent::CloseRequestedvariant now includeslabelandsignal_txfields to allow preventing closing the window. - Breaking change: Move
__currentWindowand__windowsvalues fromwindow.__TAURI__towindow.__TAURI_METADATA__. - Remove the
BaseDirectory::Currentenum variant for security reasons.- 696dca58 refactor(core): remove
BaseDirectory::Currentvariant on 2022-01-26
- 696dca58 refactor(core): remove
- Breaking change: Remove default webview window when
tauri.conf.json > tauri > windowsis not set. - Breaking change: Renamed the
rpcmodule toipc. - Expose
run_on_main_threadAPIs onWindowandAppHandle. - The minimum Rust version is now
1.56. - The minimum Rust version is now 1.57.
- d5d6d2ab Isolation Pattern (#43) Co-authored-by: Ngo Iok Ui (Wu Yu Wei) wusyong9104@gmail.com Co-authored-by: Lucas Fernandes Nogueira lucas@tauri.app on 2022-01-17
- Scopes the
filesystemAPIs from the webview access usingtauri.conf.json > tauri > allowlist > fs > scope. Scopes theassetprotocol access usingtauri.conf.json > tauri > allowlist > protocol > assetScope. Scopes thehttpAPIs from the webview access usingtauri.conf.json > tauri > allowlist > http > scope. Scopes theshellexecute API from the webview access usingtauri.conf.json > tauri > allowlist > shell > scope. Additionally, check thetauri.conf.json > tauri > bundle > externalBinto prevent access to unknown sidecars. Builder#setupclosure type changed fromFntoFnOnce.- The
tauri::api::shell::open'swithargument is now an enum value instead of any string. - The
shellallowlist now includes asidecarflag, which enables the use of theshellAPI to execute sidecars. - Breaking change: The sidecar's target triple suffix is now removed at build time.
- Fix streaming of small files using the
assetprotocol. - Add
set_menuAPI ontauri::SystemTrayHandle. - Adds
unlistenfunction to theWindowstruct. - Force updater endpoint URL to use
httpson release builds. - Validate the
std::env::current_exereturn value ifAPPDIRorAPPIMAGEenvironment variables are set. - The event name is now validated. On a IPC message, it returns an error if it fails validation; on the Rust side, it panics.
It must include only alphanumeric characters,
-,/,:and_. - The window label is now validated and must be alphanumeric, resulting in a panic if it isn't.
- Allow
tauri.conf.json > package > versionto specify a path to apackage.jsonfile and pull the version from it. - Added
clipboardfield on theWebviewAttributesstruct, which must be set totrueto enable clipboard access on the webview. - Replace all of the
winapicrate references with thewindowscrate, and replacewebview2andwebview2-syswithwebview2-comandwebview2-com-sysbuilt with thewindowscrate. This goes along with updates to the TAO and WRYnextbranches. - Show
Ok/Cancelbuttons instead ofYes/Nowhen executingwindow.confirm. - Update the
windowscrate to 0.25.0, which comes with pre-built libraries. WRY and Tao can both reference the same types directly from thewindowscrate instead of sharing bindings inwebview2-com-sys.
[1.0.0-beta.8]
- Fix missing asset protocol path.Now the protocol is
https://asset.localhost/path/to/fileon Windows. Lunix and macOS is stillasset://path/to/file. - Breaking change: Removed
register_uri_scheme_protocolfrom theWebviewAttributesstruct and renamedregister_global_uri_scheme_protocoltoregister_uri_scheme_protocolon theBuilderstruct, which now takes aFn(&AppHandle, &http::Request) -> http::Responseclosure. - Migrate to latest custom protocol allowing
Partial contentstreaming and Header parsing.
[1.0.0-beta.7]
- Cleanup application on
AppHandle#exit. - Fix
raw-window-handledependency declaration.
[1.0.0-beta.6]
-
Breaking change: The
tauri::async_runtime::spawnfunction now returnstauri::async_runtime::JoinHandle<T>. -
Breaking change: Added
window_parent: Option<&Window>as first argument to theaskandmessageAPIs on thetauri::api::dialogmodule. -
Allow the
tauri::api::dialogAPIs to be executed on any secondary thread. Breaking change: All dialog APIs now takes a closure instead of returning the response on the function call. -
Breaking change: The
Plugintraitinitializemethod now takes anAppHandlereference instead ofApp. -
Breaking change: Remove menu feature flag since there's no package dependency need to be installed on any platform anymore.
-
Adds
set_activation_policyAPI to thetauri::Appstruct (macOS only). -
Add
handleAPI totauri::async_runtime. -
Assets will now fallback to
<uri>/index.htmlbefore/index.html, allowing anchor links to work as expected. -
Fix
data-tauri-drag-regiondouble-click, will now respectresizable: falseand won't maximize. -
Fix
Notification.requestPermission()throwingUnhandled Promise Rejection: TypeError: undefined is not a function (near '...window.__TAURI__.invoke...') -
Fix blur/focus events being incorrect on Windows.
-
Move items which
tauri::apire-exports fromtauri-utilsto individual moduleutils. Because these items has their own Error/Result types which are not related to api module at all. -
Allow registering a plugin through an
AppHandleinstance using thepluginmethod. -
Embed Info.plist file contents on binary on dev.
-
Add
ExitRequestedevent that allows preventing the app from exiting when all windows are closed, and anAppHandle.exit()function to exit the app manually. -
Change
App.create_window()andAppHandle.create_window()to accept anInto<String>type instead ofString. -
Fixes
defaultPathoption on dialog API not setting the file name if it doesn't exist on Linux. -
Fix ES Module detection for default imports with relative paths or scoped packages and exporting of async functions.
-
Fix
listencalls receiving past events. -
Fixes file drop events being swapped (
file-drop-hoveron drop andfile-dropon hover). -
Fixes
app.listen_globalnot receiving events emitted in javascript. -
Fixes minimum window height being used as maximum height.
-
Fixes
unlistencalls from JavaScript removing every registered event listener. -
Use
Url.join()when building webview URLs inWindowManager, to handle edge cases and leading/trailing slashes in paths and urls. -
Fixes
fs-allfeature not requiring thebase64crate. -
Update gtk and its related libraries to v0.14. This also remove requirements of
clangas build dependency. -
Use
HeaderValue::from_bytesinstead ofHeaderValue::from_strandHeaderValue#to_bytesinstead ofHeaderValue#to_strto improve compatibility. -
Implement
Debugon public API structs and enums. -
Adds
ResumedandMainEventsClearedvariants to theEventenum. -
Panic when a dispatcher getter method (
Window,GlobalShortcutHandle,ClipboardManagerandMenuHandleAPIs) is called on the main thread. -
Use
percent_encoding::percent_decodeon theassetcustom protocol URL before reading the file. -
Keep original value on
config > package > productNameon Linux (previously converted to kebab-case). -
Inject the invoke key on regular
<script></script>tags. -
Remove salt-related APIs (no longer needed after the
__TAURI_INVOKE_KEY__implementation). -
Update minimum Rust version to 1.54.0.
-
Run the setup callback after preparing the system tray.
-
Fixes a consistency issue on the order of
tauri::process::Commandemitted events. -
Force data directory even on non-local window.
-
Allow creation of empty Window with
create_tao_window()and management withsend_tao_window_event()on the AppHandler. -
Make
ClipboardManagerandGlobalShortcutManagerpublic as they are exposed in theAppHandle. -
- Support macOS tray icon template to adjust automatically based on taskbar color.
-
Images you mark as template images should consist of only black and clear colors. You can use the alpha channel in the image to adjust the opacity of black content, however.
-
426a6b49 feat(macOS): Implement tray icon template (#2322) on 2021-07-29
-
Add
Event::Readyon therun()callback. Triggered once when the event loop is ready. -
- Do not run the updater with UAC task if server don't tell us. (Allow toggling server-side)
-
The updater expect a field named
with_elevated_taskwith abooleanand will not run if the task is not installed first. (windows only) -
c5761190 fix(updater): Run elevated task only if server tell us (#2357) on 2021-08-08
-
Add
try_stateAPI to theManagertrait.
[1.0.0-beta.5]
- Allow preventing window close when the user requests it.
- Add
App#runmethod with callback argument (event loop event handler). - Fixes
data-tauri-drag-regionnot firing its events. - Fix macOS
EXC_BAD_ACCESSpanic when app is code-signed. - Fixes SVG loading on custom protocol.
- Expose
gtk_windowgetter. - Inject invoke key on
scripttags withtype="module". - Fix macOS high CPU usage.
- Export
MenuHandleandMenuEventtypes ontauri::window. - Use glib context for linux updater to prevent GTK panic.
- Bump
wry0.11 and fix focus integration to make it compatible with tao 0.4. Paramshas been removed, along with all the associated types on it. Functions that previously accepted those associated types now accept strings instead. Type that used a generic parameterParamsnow useRuntimeinstead. If you use thewryfeature, then types with aRuntimegeneric parameter should default toWry, letting you omit the explicit type and let the compiler infer it instead.
tauri:
- See
Paramsnote - If you were using
Paramsinside a function parameter or definition, all references to it have been replaced with a simple runtime that defaults toWry. If you are not using a custom runtime, just removeParamsfrom the definition of functions/items that previously took it. If you are using a custom runtime, you may need to pass the runtime type to these functions. - If you were using custom types for
Params(uncommon and if you don't understand you probably were not using it), all methods that were previously taking the custom type now takes anInto<String>or a&str. The types were already required to be string-able, so just make sure to convert it into a string before passing it in if this breaking change affects you.
tauri-macros:
- (internal) Added private
default_runtimeproc macro to allow us to give item definitions a custom runtime only when the specified feature is enabled.
tauri-runtime:
- See
Paramsnote - Removed
Params,MenuId,Tag,TagRef. - Added
menu::{MenuHash, MenuId, MenuIdRef}as type aliases for the internal type that menu types now use.- All previous menu items that had a
MenuIdgeneric now use the underlyingMenuIdtype without a generic.
- All previous menu items that had a
Runtime,RuntimeHandle, andDispatchhave no more generic parameter oncreate_window(...)and instead use theRuntimetype directlyRuntime::system_trayhas no moreMenuIdgeneric and uses the string basedSystemTraytype directly.- (internal)
CustomMenuItem::id_value()is now hashed on creation and exposed as theidfield with typeMenuHash.
tauri-runtime-wry:
- See
Paramsnote - update menu and runtime related types to the ones changed in
tauri-runtime.
tauri-utils:
Assets::getsignature has changed to take a&AssetKeyinstead ofimpl Into<AssetKey>to become trait object safe.- fd8fab50 refactor(core): remove
Paramsand replace with strings (#2191) on 2021-07-15
[1.0.0-beta.4]
- Double clicking a
data-tauri-drag-regionelement will toggle the window maximized state. - Fixes
assetprotocol crashing application.
[1.0.0-beta.3]
- Fixes
api::process::Commandevents not firing consistently. - Detect ESM scripts and inject the invoke key directly instead of using an IIFE.
- Improve invoke key code injection performance time rewriting code at compile time.
- Enforce uniqueness of window label.
Windowis nowSend + Syncon Windows.
[1.0.0-beta.2]
-
Remove anonymous lifetimes on examples.
-
Moves
shell,dialog::FileDialogBuilderandprocess::CommandAPIs behind their allowlist feature flags. -
Adds
create_windowAPI to theAppHandlestruct. -
Adds a
handlefunction to theAppstruct, which returns aSendhandle to the app instance. -
Use
attohttpcon the HTTP API by default for bundle size optimization.reqwestis implemented behind thereqwest-clientfeature flag. -
Kill child processes spawned with
tauri::api::process::Commandontauri::Appdrop. Can be skipped withtauri::Builder#skip_cleanup_on_drop. -
Adds
clipboardAPIs (write and read text). -
Allow accessing an
AppHandleinstance on a command through dependency injection. -
Fixes child processes messages not arriving until the subprocess is terminated.
-
Adds
configandpackage_infogetters to theAppandAppHandlestructs. -
Expose mutable getters for the rest of the public
Contextgetters. -
pub fn assets_mut(&mut self) -> &mut Arc<A> -
pub fn default_window_icon_mut(&mut self) -> &mut Option<Vec<u8>> -
pub fn system_tray_icon_mut(&mut self) -> &mut Option<Icon> -
pub fn package_info_mut(&mut self) -> &mut tauri::api::PackageInfo -
754c2e76 feat(core): finish mutable getters for
Context(#1814) on 2021-05-13 -
Adds
request_user_attentionAPI to theWindowstruct. -
Adds
show,hide,is_visibleandtoggleAPIs to theMenuHandle. -
Allow
dev_pathanddist_dirto be an array of root files and directories to embed. -
Validate
tauri.conf.json > build > devPathandtauri.conf.json > build > distDirvalues. -
Set the Tauri window as parent for dialogs.
-
Fallback to
index.htmlon asset loading so router with history mode works. -
Fixes custom protocol asset loader not decoding the percent-encoded path.
-
As some frameworks automatically add "true" as the value of the attribute, we need to check if it exists instead.
-
Fixes build without the dialog Cargo features.
-
Allow disabling the webview file drop handler (required to use drag and drop on the frontend on Windows) using the
tauri.conf.json > tauri > windows > fileDropEnabledflag or theWebviewAttributes#disable_file_drop_handlermethod. -
Fixes the HTTP API binary response serialization.
-
The
httpAPIs now resolve the returned promise when the API call finishes with an error status code. -
Run the
notification.show()method on a dedicated async task to prevent a panic on Windows. -
Fixes HTTP API headers being overwritten when using the
reqwestclient. -
Remove closed window from the
window.__TAURI__.__windowsarray, used by thewindow.getAllAPI from@tauri-apps/api. -
Panic on window getters usage on the main thread when the event loop is not running and document it.
-
Adds
focusAPI to the WindowBuilder. -
Breaking change: The global shortcut API is now managed by
taoso it cannot be accessed globally, the manager is now exposed on theAppandAppHandlestructs. -
Hide
phfcrate export (not public API). -
(internal): allow
wrydependency to be optional again while keeping default args. code that wishes to expose a struct with a default arg should use thecrate::manager::default_args!macro to declare the struct, so that it can automatically feature-gateDefaultArgsbehind usingwry. -
Adds
is_decoratedgetter on Window. -
Adds
is_resizablegetter on Window. -
Adds
is_visiblegetter on Window. -
Read
tauri.conf.json > tauri > bundle > iconsand use the first.pngicon as window icon on Linux. Defaults toicon/icon.pngif a PNG icon is not configured. -
Adds
acceleratormethod to theCustomMenuItemstruct to define a keyboard shortcut for the menu item. -
Breaking change: The
menuAPI was not designed to have all the new features: submenus, item updates, disabled state... so we broke it before going to stable. -
Adds a
PathResolverstruct to simplify the usage of thetauri::api::path::{app_dir, resource_dir}APIs, accessible through theAppandAppHandlepath_resolvermethods. -
Removes
imagedependency. For now only.icoicons on Windows are supported, and we'll implement other types on demand to optimize bundle size. -
Remove window object from the
ManagerinternalHashMapon close. This fixes the behavior of using[App|AppHandle|Window]#get_windowafter the window is closed (now correctly returnsNone). -
Improve RPC security by requiring a numeric code to invoke commands. The codes are generated by the Rust side and injected into the app's code using a closure, so external scripts can't access the backend. This change doesn't protect
withGlobalTauri(window.__TAURI__) usage. -
Adds
run_iterationAPI to theAppand return the app instance on thebuildmethod of theBuilder. Therun_iterationmethod runs the window event loop step by step, allowing Tauri to be run along other applications. -
The
run_on_main_threadAPI now uses WRY's UserEvent, so it wakes the event loop. -
Adds
set_focusAPI on Window. -
Adds
set_skip_taskbarAPI on Window. -
Adds
skip_taskbarAPI to the WindowBuilder. -
Breaking change: The
system_trayandon_system_tray_eventAPIs were not designed to have all the new features: submenus, item updates, click events, positioning... so we broke it before going to stable. -
Fix loading url containing URI fragment
-
Adds
Window#centerandWindowBuilder#centerAPIs. -
Adds window native handle getter (HWND on Windows).
[1.0.0-beta.1]
- Adds a mutable
configgetter on theContextstruct.
[1.0.0-beta.0]
-
Breaking:
api::path::resolve_path()andapi::path::app_dir()now takes the config as first argument and thePackageInfoas second argument. Breaking:api::path::app_dir()now resolves to${configDir}/${config.tauri.bundle.identifier}. -
Adds
manageAPI to theBuilderstruct, which manages app state. -
Breaking: The
assetsfield on thetauri::Contextstruct is now aArc<impl Assets>. -
Only commands with a
async fnare executed on a separate task.#[command] fn command_nameruns on the main thread. -
Renamed the
commandAPI module toprocess. -
Adds
optionsargument to the shell command API (envandcwdconfiguration). -
Improves support for commands returning
Result. -
Adds
statusandoutputAPIs to thetauri::api::process::Commandstruct. -
The
create_windowAPI callback now takes two arguments: theWindowBuilderand theWebviewAttributesand must return a tuple containing both values. -
Reintroduce
cspinjection, configured ontauri.conf.json > tauri > security > csp. -
Adds the default types used with
Builder::default()to items that exposeParamsin their type. This allows you to skip specifying a generic parameter to types likeWindow<P>if you use the default type. -
Change draggable region element detection from
drag-regionclass todata-tauri-drag-regionattribute. -
Emit
tauri://resize,tauri://move,tauri://close-requested,tauri://destroyed,tauri://focus,tauri://blurandtauri://scale-changeevents to the window. -
The event
emitfunction payload type is nowimpl Serializeinstead ofOption<impl Serialize>. -
Update
tauri-hotkeyto v0.1.2, fixing a compilation issue on 32-bit platforms. -
Implemented window menus APIs.
-
Added the `#[non_exhaustive] attribute where appropriate.
-
Notification.requestPermission()now returns"denied"when not allowlisted.IsNotificationPermissionGrantedreturnsfalsewhen not allowlisted. -
Refactored the
Plugintraitinitializeandextend_apisignatures.initializenow takes theAppas first argument, andextend_apitakes anInvokeinstead ofInvokeMessage. This adds support to managed state on plugins. -
window.print()now works on all platforms. -
Breaking:
Contextfields are now private, and is expected to be created throughContext::new(...). All fields previously available throughContextare now public methods. -
Settingsis now serialized usingbincode. -
The window management API was refactored: removed
setX,setY,setWidth,setHeightAPIs, renamedresizetosetSizeand the size and position APIs now allow defining both logical and physical values. -
Removed the
tcpmodule fromtauri::api. -
Removes the
with_windowattribute on thecommandmacro. Tauri now infers it using theCommandArgtrait. -
Move
restart_applicationAPI fromappmodule toprocessmodule. -
tauri-runtimecrate initial release. -
The
setupError type must beSend. -
Simplify usage of app event and window label types. The following functions now accept references the
Tagcan be borrowed as. This means an&strcan now be accepted for functions likeWindow::emit. This is a breaking change for the following items, which now need to take a reference. Additionally, type inference for&"event".into()will no longer work, but&"event".to_string()will. The solution for this is to now just pass"event"becauseBorrow<str>is implemented for the default event typeString. -
Breaking:
Window::emitnow acceptsBorrowfor the event. -
Breaking:
Window::emit_othersnow acceptsBorrowfor the event -
Breaking:
Window::triggernow acceptsBorrowfor the event. -
Breaking:
Manager::emit_allnow acceptsBorrowfor the event. -
Breaking:
Manager::emit_tonow acceptsBorrowfor both the event and window label. -
Breaking:
Manager::trigger_globalnow acceptsBorrowfor the event. -
Breaking:
Manager::get_windownow acceptsBorrowfor the window label. -
(internal):
trait tauri::runtime::tag::TagRefhelper for accepting tag references. Any time you want to accept a tag reference, that trait will handle requiring the reference to have all the necessary bounds, and generate errors when the exposed function doesn't set a bound likeP::Event: Borrow<E>. -
181e132 refactor(core): simplify usage of app event and window label types (#1623) on 2021-04-27
-
a755d23 refactor(core): more bounds for better errors from #1623 (#1632) on 2021-04-27
-
tauri-runtime-wryinitial release. -
Adds system tray support.
-
Rename
AttributestoWindowBuilder. -
The
Window#create_windowAPI now has the same signature asApp#create_window. -
Adds
on_window_eventAPI to theWindowstruct. -
Adds window getters.
-
Update
wryto v0.9.
[1.0.0-beta-rc.4]
- Update
tauri-macrosandtauri-utilsto1.0.0-beta-rc.1.
[1.0.0-beta-rc.3]
tauri::error::CreateWebviewnow has the error string message attached.- If the dialog
defaultPathis a file, use it as starting file path. - Validate dialog option
defaultPath- it must exists. - Expose
async_runtimemodule. - Expose
PageLoadPayloadstruct. - Fixes the Message
commandname value on plugin invoke handler. - Allow
window.__TAURI__.invoketo be moved to another variable. - Make sure custom protocol is treated as secure content on macOS.
- Fixes macOS shortcut modifiers keycodes.
- Adds APIs to determine global and webview-specific URI scheme handlers.
- The package info APIs now checks the
packageobject ontauri.conf.json. - Change plugin trait
initializationreturn type tostd::result::Result<(), Box<dyn std::error::Error>>. - Fixes
sidecarCommand API. - Set LocalStorage and IndexedDB files path on Linux to
$HOME/.local/${bundleIdentifier}. - Use bundle identifier instead of
Taurifor user data path on Windows.
[1.0.0-beta-rc.2]
-
Prevent "once" events from being able to be called multiple times.
-
Window::trigger(/*...*/)is now properlypubinstead ofpub(crate). -
Manager::once_global(/*...*/)now returns anEventHandler. -
Window::once(/*...*/)now returns anEventHandler. -
(internal)
event::Listeners::trigger(/*...*/)now handles removing "once" events. -
ece243d don't remove once listener on new thread (#1506) on 2021-04-14
-
Window and global events can now be nested inside event handlers. They will run as soon as the event handler closure is finished in the order they were called. Previously, calling events inside an event handler would produce a deadlock.
Note: The order that event handlers are called when triggered is still non-deterministic.
[1.0.0-beta-rc.1]
- Missing the
filesproperty in the package.json which mean that thedistdirectory was not published and used.
[1.0.0-beta-rc.0]
- internal refactoring of
Paramsto allow for easier usage without a private trait with only 1 implementor.ParamsPrivate->ParamsBaseManagerPrivate->ManagerBase(new)Args, crate only. Now implementsParams/ParamsBase.AppandWindowuseWindowManagerdirectly - ec27ca8 refactor(tauri): remove private params trait methods (#1484) on 2021-04-14
- Updated
wry, fixing an issue with the draggable region. - Now Tauri commands always returns Promise.
- Rename macOS bundle settings from
osxtomacOS. - The shell process spawning API was rewritten and now includes stream access.
- The Tauri files are now read on the app space instead of the
tauricreate. Also, theAppBuilderbuildfunction now returns a Result. - Tauri now uses explicit Error variants with
thiserrorinstead of relying onanyhow. - Align HTTP API types with the documentation.
- Replace
\with\\in css assets that are lazy loaded. Since these are injected in a template literal, backslashes must be escaped. Backslashes are sometimes used for octal sequences in CSS. - Replaces the embedded-server mode with Wry's custom protocol feature. This allows assets to be transferred to the webview directly, instead of through a localhost server.
- The
messageandaskdialogs now usetinyfiledialogs-rsinstead oftauri-dialog-rs. - Refactor the event callback payload and return an unlisten function on the
listenAPI. - Adds
unlistenandonceAPIs on the Rust event system. - The
tauri::eventmodule has been moved to a Webview manager API. - The file dialog API now uses rfd. The filter option is now an array of
{ name: string, extensions: string[] }. - Tauri now emits events on file drops on the webview window.
- Fixes
resource_dirresolution on AppImage. - Fixed missing 'App' variant & string promise instead of void promise.
- The HTTP API was improved with client caching and better payload and response types.
- Added new JavaScript API to extract
name,version,tauri versionfrom the running application. We exposedrelaunchandexitas well to control your application state. - The event listener
oncekind was moved to a dedicated function. - Use
JSON.parse(String.raw`{arg}`)for communicating serialized JSON objects and arrays < 1 GB to the Webview from Rust.
https://github.com/GoogleChromeLabs/json-parse-benchmark
- eeb2030 Use JSON.parse instead of literal JS for callback formatting (#1370) on 2021-04-07
- a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
- Update all code files to have our license header.
- Added support to multiple windows.
- Adds
productNameandversionconfigs ontauri.conf.json > package. - Plugins are now configurable through a
tauri.conf.json > "plugins" > $pluginNameobject. - Renamed the
Plugintraitinit_scripttoinitialization_script. - The plugin instance is now mutable and must be
Send. - Fixes the event system usage on the plugin
readyhook. - The
allowlistconfiguration now has one object per module. - The Tauri script is now injected with the webview
initAPI, so it is available after page changes. - Removed the
no-servermode, theinliner, thedevserver proxy and theloadAssetAPI. - Adds a global shortcut API.
- Added
asyncsupport to the Tauri Rust core on commit #a169b67. - Alpha version of tauri-updater. Please refer to the
READMEfor more details. - The Tauri integration with Webview was refactored to use traits, which allows custom implementations by developers and simplifies changes on the webview implementation.
- Added window management and window creation APIs.
- Use WRY as Webview interface, thanks to @wusyong.
[0.11.1]
- Update webview-official dependency which fix compatibility on macOS.
[0.11.0]
- Match writeBinaryFile command name between js and rust
[0.10.0]
- Adds missing APIs features from
allowlistto the tauri crate's manifest file. - Adds a path resolution API (e.g. getting the download directory or resolving a path to the home directory).
- Update minimum Rust version to 1.42.0 due to a dependency update.
- Minimum Rust version updated to 1.47.0. Run
$ rustup updateto update to the latest version.
[0.9.2]
- Bump all deps as noted in #975, #976, #977, #978, and #979.
[0.9.1]
- Adjust payload formatting to handle multibyte characters in front-end message payloads. - df70ca5 Fix #912 multibyte character breaks message (#914) on 2020-08-01
[0.9.0]
- Make sure CSS content loaded with the
loadAssetAPI is inside a template string and not injected raw. - Pin the
tauri-apidependency on thetauricrate so updates doesn't crash the build. - Fixes the Webview initialization on Windows.
[0.8.0]
- Use native dialog on
window.alertandwindow.confirm. Since every communication with the webview is asynchronous, thewindow.confirmreturns a Promise resolving to a boolean value. - 0245833 feat(tauri) makewindow.alertandwindow.confirmavailable, fix #848 (#854) on 2020-07-18 - dac0ae9 chore(changes) add tauri-api to JS dialogs changefile on 2020-07-19 - The notification's
bodyis now optional, closes #793. - Fixes a regression on the storage of requestPermission response. ß - dac1db3 fix(tauri) notification body optional, requestPermission() regression, closes #793 (#844) on 2020-07-16
- Plugin system added. You can hook into the webview lifecycle (
created,ready) and extend the API adding logic to theinvoke_handlerby implementing thetauri::plugin::Plugintrait. - Renaming
whitelisttoallowlist(see #645). - Moving the webview implementation to webview, with the official Rust binding.
This is a breaking change.
IE support has been dropped, so the
edgeobject ontauri.conf.json > taurino longer exists and you need to remove it.webview.handle()has been replaced withwebview.as_mut(). - cd5b401 feature: import official webview rust binding (#846) on 2020-07-18
[0.7.5]
- Fixes Edge blank screen on Windows when running tauri dev (Tauri crashing window due to Edge reloading app because of missing Content-Type header).
[0.7.4]
- Ignoring non UTF-8 characters on the loopback command output.
- f340b29 fix(tauri) addition to the previous commit on 2020-07-10
[0.7.3]
- Properly run the loopback command on Windows.
- Properly ignore the ${distDir}/index.html asset from the asset embedding. Previously every asset with name matching /(.+)index.html$/g were ignored.
[0.7.2]
Bumped due to dependency.
[0.7.1]
- Fixes the assets embedding into the binary.
[0.7.0]
- The execute_promise and execute_promise_sync helpers now accepts any tauri::Result where T: impl Serialize. This means that you do not need to serialize your response manually or deal with String quotes anymore. As part of this refactor, the event::emit function also supports impl Serialize instead of String.
[0.6.2]
- Fixes the Windows build with the latest Windows SDK.
[0.6.1] - (Not Published)
[0.6.0]
- Adds a command line interface option to tauri apps, configurable under tauri.conf.json > tauri > cli.
- Fixes no-server mode not running on another machine due to fs::read_to_string usage instead of the include_str macro. Build no longer fails when compiling without environment variables, now the app will show an error.
- Adds desktop notifications API.
- Properly reflect tauri.conf.json changes on app when running tauri dev.