tauri full changelog
v2.11.5
Section titled “v2.11.5”Dependencies
Section titled “Dependencies”44594d6f1(#15631 by @Legend-Master) Unpintimeas a new fixed version0.3.53has been published
v2.11.4
Section titled “v2.11.4”Dependencies
Section titled “Dependencies”-
Upgraded to
tauri-runtime-wry@2.11.4 -
0299da0d3(#15616 by @Legend-Master) Pinningtimeto<0.3.52used bycookieto mitigate a compilation error, see
v2.11.3
Section titled “v2.11.3”Bug Fixes
Section titled “Bug Fixes”5075c81a1(#15550 by @Legend-Master) Fix double clickingdata-tauri-drag-regionmaximizes the window even whenis_maximizableis set to false7af245c60(#15474 by @Legend-Master) Fixtauri::scope::fs::Scope::oncedeadlocks4c8bb98cd(#15475 by @Legend-Master) FixListener::oncecan be called multiple times if they triggeremit(s) inside the handler66f873d62(#15491 by @bclarke123) Adjust mutex locking insend_channel_data_handler,handle_android_plugin_response,send_channel_datato avoid deadlocks
Performance Improvements
Section titled “Performance Improvements”e6083a111(#15220 by @DeTeam) Loadtauri://custom protocol handlers asynchronously to speed up load time800eade58(#15444 by @Legend-Master) Reuse proxy reqwest client in mobile dev, improving the dev load speed
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-utils@2.9.3 - Upgraded to
tauri-runtime-wry@2.11.3 - Upgraded to
tauri-runtime@2.11.3 - Upgraded to
tauri-macros@2.6.3 - Upgraded to
tauri-build@2.6.3 504ff3f44(#15364 by @renovate) Updated dependencytray-iconto 0.24
v2.11.2
Section titled “v2.11.2”Bug Fixes
Section titled “Bug Fixes”47e1b7549(#15386 by @DominikPeters) FixedSubmenu.setAsWindowsMenuForNSApp()calling the Help menu setter instead of the Window menu setter.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-utils@2.9.2 - Upgraded to
tauri-runtime@2.11.2 - Upgraded to
tauri-runtime-wry@2.11.2 - Upgraded to
tauri-macros@2.6.2 - Upgraded to
tauri-build@2.6.2
v2.11.1
Section titled “v2.11.1”Enhancements
Section titled “Enhancements”Bug Fixes
Section titled “Bug Fixes”Security fixes
Section titled “Security fixes”1b26769f9(#15266) Enforce ACL checks for IPC requests from remote origins even when noAppManifestis configured. Previously, custom (non-plugin) commands bypassed ACL entirely without anAppManifest, allowing any origin to invoke them. Now, remote origins are always subject to ACL resolution, and can only reach custom commands if an explicitremotecapability has been granted.ba025588fCorrectly handle .localhost suffix in local origins on Windows and Android to fix a security issue that made tauri think remote websites that started with a registered scheme were local websites. For example, when registering anappcustom protocol, Tauri would thinkhttp://app.evil.com/would be a local URL on Windows/Android.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-utils@2.9.1 - Upgraded to
tauri-runtime@2.11.1 - Upgraded to
tauri-runtime-wry@2.11.1 - Upgraded to
tauri-macros@2.6.1 - Upgraded to
tauri-build@2.6.1
v2.11.0
Section titled “v2.11.0”New Features
Section titled “New Features”074299c08(#14307) Add Bring All to Front predefined menu item typec00a3dbff(#14473) Add support for therenameattribute in thetauri::commandmacro to allow renaming the command to something other than the function name.a12142a48(#14357) Add macos support for setting the icon and icon template state in the same step of the main thread, to prevent flickering.2dd9b15a2(#15062) Adddata-tauri-drag-region="deep"so clicks on non-clickable children will drag as well. Can still opt out of drag on some regions usingdata-tauri-drag-region="false"001c8fe3d(#14722) Add a WebView option to control browser-level general autofill behavior. This option does not disable password or credit card autofill. On Windows (WebView2), setting it to true disables the general autofill "Suggestions" UI, which may appear even whenautocomplete="off"is specified on input elements. On Linux, macOS, iOS, and Android, this option is currently unsupported and performs no operation.b27be063f(#14925) Addeval_with_callbackto the Tauri webview APIs and runtime dispatch layers.d83d2d92b(#14905) Enable track_caller attribute for async_runtime to provide better location information in logs and panics.cc5c97602(#14486) Implement file association for Android and iOS.cc5c97602(#14486) TriggerRunEvent::Openedon Android.eb0312ea9(#15199) Propagates theEvent::SuspendedandEvent::Resumedevents fromtaowhen they are emitted on mobile targets.093e2b47c(#14484) Support creating multiple windows on Android (activity embedding) and iOS (scenes).093e2b47c(#14484) Addeddbusfeature flag (enabled by default) which is required for theme detection on Linux.1063c48c5(#14523) Add handler for web content process termination on macOS and iOS.
Enhancements
Section titled “Enhancements”d730770bb(#15117) Simplify async-sync code boundaries, no externally visible changesc69d5ca4b(#15262) Remove a clone, no user-facing changes.4017a7ed7(#14908) Implement retrieving inner PathBuf from SafePathBuf to ease using APIs that require an owned PathBuf
Bug Fixes
Section titled “Bug Fixes”110336c88(#15250) Fix initial window position when positioning it to another monitor.9808236eb(#14655) Fix monitor work area Y position on macOS.
What's Changed
Section titled “What's Changed”d34497ef1(#14862) The new window handler passed toon_new_windowno longer requiresSync, and runs on main thread on Windows, aligning with other platforms
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-macros@2.6.0 - Upgraded to
tauri-build@2.6.0 - Upgraded to
tauri-runtime@2.11.0 - Upgraded to
tauri-runtime-wry@2.11.0 - Upgraded to
tauri-utils@2.9.0 373b7e677(#15177) Update Specta in lockfile and upgrade dependencies using the removeddoc_auto_cfgattribute to fix errors building documentationa219ede00(#15203) Updatedtray-iconto v0.22
v2.10.3
Section titled “v2.10.3”Dependencies
Section titled “Dependencies”- Upgraded to
tauri-utils@2.8.3 - Upgraded to
tauri-runtime@2.10.1 - Upgraded to
tauri-runtime-wry@2.10.1 - Upgraded to
tauri-macros@2.5.5 - Upgraded to
tauri-build@2.5.6
v2.10.2
Section titled “v2.10.2”Dependencies
Section titled “Dependencies”- Upgraded to
tauri-macros@2.5.4 - Upgraded to
tauri-build@2.5.5
v2.10.1
Section titled “v2.10.1”Dependencies
Section titled “Dependencies”v2.10.0
Section titled “v2.10.0”New Features
Section titled “New Features”-
e919a760e(#14619 by @NaamuKim) Addset_simple_fullscreenmethod toWebviewWindow.This method was already available on the
Windowtype and is now also available onWebviewWindowfor consistency. On macOS, it toggles fullscreen mode without creating a new macOS Space. On other platforms, it falls back to regular fullscreen.
Bug Fixes
Section titled “Bug Fixes”853ed4642(#14442 by @ish1416) Fixed 500 error when accessing local video files in Android external storage directory viaconvertFileSrc. Added better error handling and logging for Android external storage access to help diagnose permission and accessibility issues.4d5d78daf(#14812 by @oscartbeaumont) fix(specta): don't use#[specta(rename = ...)]withtauri::ipc::Channelff5d76ca2(#14653 by @Legend-Master)WindowConfig::focusis set tofalseinWindowConfig::default()
What's Changed
Section titled “What's Changed”0575dd287(#14521 by @kandrelczyk) Change the way bundle type information is added to binary files. Instead of looking up the value of a variable we simply look for the default value.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-utils@2.8.2 - Upgraded to
tauri-build@2.5.4 - Upgraded to
tauri-runtime-wry@2.10.0 - Upgraded to
tauri-runtime@2.10.0 - Upgraded to
tauri-macros@2.5.3 75057c7c0(#14778 by @FabianLars) Breaking Change forwith_webviewusers: Updated webkit2gtk-rs crates tov2.0.2.75057c7c0(#14778 by @FabianLars) Update wry tov0.54.
v2.9.5
Section titled “v2.9.5”Bug Fixes
Section titled “Bug Fixes”251203b89(#14637 by @Legend-Master) FixMonitor::work_areareturns logical position and size inside thePhysicalRecton Linux
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.9.3
v2.9.4
Section titled “v2.9.4”Performance Improvements
Section titled “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
Section titled “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
v2.9.3
Section titled “v2.9.3”Bug Fixes
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-macros@2.5.1 - Upgraded to
tauri-build@2.5.2
v2.9.2
Section titled “v2.9.2”Bug Fixes
Section titled “Bug Fixes”28b9e7c7b(#14377 by @Legend-Master) Fixundefined is not an object (evaluating '[callbackId, data]')error on custom protocol IPC fails
v2.9.1
Section titled “v2.9.1”Bug Fixes
Section titled “Bug Fixes”4b6b8690a(#14347 by @FabianLars) Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-build@2.5.1 - Upgraded to
tauri-runtime@2.9.1 - Upgraded to
tauri-runtime-wry@2.9.1
v2.9.0
Section titled “v2.9.0”New Features
Section titled “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
Section titled “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
Section titled “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
v2.8.5
Section titled “v2.8.5”Enhancements
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-build@2.4.1
v2.8.4
Section titled “v2.8.4”Bug Fixes
Section titled “Bug Fixes”03e7c1193(#14080 by @lucasfernog) Ignore initial navigation toabout:blanksoon_new_windowdoes not give a warning on first navigation on macOS.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.8.1
v2.8.3
Section titled “v2.8.3”Bug Fixes
Section titled “Bug Fixes”534998406(#14054 by @FabianLars) Fixed an issue that caused the runtime WebView2 detection to fail for FixedRuntime installations.
v2.8.2
Section titled “v2.8.2”Bug Fixes
Section titled “Bug Fixes”5075b67d3(#14039 by @lucasfernog) Fix compilation when thewryCargo feature is disabled.
v2.8.1
Section titled “v2.8.1”Bug Fixes
Section titled “Bug Fixes”902727MoveWebviewWindowBuilder::with_related_viewbehind thewryfeature flag.
v2.8.0
Section titled “v2.8.0”New Features
Section titled “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
Section titled “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
Section titled “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
v2.7.0
Section titled “v2.7.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
v2.6.2
Section titled “v2.6.2”Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.7.1
v2.6.1
Section titled “v2.6.1”Bug Fixes
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-macros@2.3.1
v2.6.0
Section titled “v2.6.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Breaking Changes”b7cdb3b39(#13410 by @Legend-Master) Feature gated the HTML manipulation code intauri-utilsbehined a flag to reduce compile time
v2.5.1
Section titled “v2.5.1”Enhancements
Section titled “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
Section titled “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
v2.5.0
Section titled “v2.5.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “Performance Improvements”66e6325f4(#13136) ImproveChannel's performance when sending small amount of data (e.g. sending a number)
Dependencies
Section titled “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
Section titled “Breaking Changes”fca5154e7(#13130) Removed re-exportedWebviewAttributesfromtauri-runtimewhich is exposed by accident intauriand not used by any public facing APIs
v2.4.1
Section titled “v2.4.1”Enhancements
Section titled “Enhancements”a851b6597(#13057 by @Legend-Master) Enhanced the description of generated docs and schema for permission sets to include list of permissions within.
Dependencies
Section titled “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
v2.4.0
Section titled “v2.4.0”New Features
Section titled “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
Section titled “Enhancements”55ffa23c9(#12855 by @lucasfernog) Fix docs.rs build for mobile targets.f2c94aaca(#12682 by @lucasfernog) AddPlugin#startIntentSenderForResultAndroid API for mobile plugins.
Bug Fixes
Section titled “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
Section titled “Performance Improvements”1cd8f55ee(#13033 by @Legend-Master) Don't ship globalbundle.global.jsifapp > withGlobalTauriis set to false
Dependencies
Section titled “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
v2.3.1
Section titled “v2.3.1”Bug Fixes
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.4.1
v2.3.0
Section titled “v2.3.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
v2.2.5
Section titled “v2.2.5”Bug Fixes
Section titled “Bug Fixes”477e9c049(#12514 by @FabianLars) Fixed an issue that caused iOS apps to panic when using an async function fortauri::mobile_entry_point.
v2.2.4
Section titled “v2.2.4”Bug Fixes
Section titled “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.
v2.2.3
Section titled “v2.2.3”Bug Fixes
Section titled “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.
v2.2.2
Section titled “v2.2.2”Bug Fixes
Section titled “Bug Fixes”61e69db9e(#12376 by @FabianLars) Widenspectaversion range to^2.0.0-rc.16again.
v2.2.1
Section titled “v2.2.1”Bug Fixes
Section titled “Bug Fixes”cd1d026f9(#11961 by @Legend-Master) Fix tauri fails to build if the project path contains glob characters
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-build@2.0.5
v2.2.0
Section titled “v2.2.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
v2.1.1
Section titled “v2.1.1”Bug Fixes
Section titled “Bug Fixes”e8a50f6d7(#11645) Fix integer values ofBasDirectory.HomeandBaseDirectory.Fontregression which broke path APIs in JS.
v2.1.0
Section titled “v2.1.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
v2.0.6
Section titled “v2.0.6”Dependencies
Section titled “Dependencies”- Upgraded to
tauri-utils@2.0.2
v2.0.5
Section titled “v2.0.5”New Features
Section titled “New Features”6cd917c22(#11390 by @amrbashir) Add new methods ontauri::menu::MenuBuilderandtauri::menu::SubmenuBuilderto create predefined menu item with specific text.
Enhancements
Section titled “Enhancements”eb61d44f9(#11398 by @lucasfernog) Fallback to the Window and AppHandle resource table when closing a resource by ID.
Bug Fixes
Section titled “Bug Fixes”What's Changed
Section titled “What's Changed”2e88633ba(#11369 by @lucasfernog) Remove references to no longer used__TAURI_INTERNALS__.metadata.windowsand__TAURI_INTERNALS__.metadata.webviews.
v2.0.4
Section titled “v2.0.4”New Features
Section titled “New Features”bcf279278(#11354) On Windows, AddContextMenu::hpopupmenumethod to get theHMENUused for popups and tray icon menu.
Enhancements
Section titled “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
Section titled “Bug Fixes”f3f521f03(#11348) FixTAURI_ANDROID_PACKAGE_UNESCAPED not setpanic during compilation for Android when using an older tauri cli.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.1.1
v2.0.3
Section titled “v2.0.3”New Features
Section titled “New Features”1d3f51e10(#11228 by @amrbashir) Addtauri::Builder::on_menu_event.
Bug Fixes
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-runtime@2.1.0 - Upgraded to
tauri-runtime-wry@2.1.0
v2.0.2
Section titled “v2.0.2”Enhancements
Section titled “Enhancements”03e759042(#11235 by @lucasfernog) AddedApp::invoke_keyandAppHandle::invoke_keyfor custom invoke systems that rely on manualWebview::on_messagecalls.
v2.0.1
Section titled “v2.0.1”What's Changed
Section titled “What's Changed”0ab2b3306(#11205 by @lucasfernog) Downgrade MSRV to 1.77.2 to support Windows 7.
Dependencies
Section titled “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
v2.0.0
Section titled “v2.0.0”What's Changed
Section titled “What's Changed”Dependencies
Section titled “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
v2.0.0-rc.17
Section titled “v2.0.0-rc.17”Breaking Changes
Section titled “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
v2.0.0-rc.16
Section titled “v2.0.0-rc.16”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “Breaking Changes”0b4495996(#11121 by @amrbashir) Simplified emitted tray event JS value and updatedTrayIconEventtype definition to match it.
v2.0.0-rc.15
Section titled “v2.0.0-rc.15”New Features
Section titled “New Features”ad294d274(#11032 by @amrbashir) Addapp > windows > createoption to choose whether to create this window at app startup or not.
Enhancements
Section titled “Enhancements”e7fd676c2(#11025 by @lucasfernog) Inject__INVOKE_KEY__into custom invoke systems so their implementations can properly constructtauri::webview::InvokeRequest.
Dependencies
Section titled “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
Section titled “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.
v2.0.0-rc.14
Section titled “v2.0.0-rc.14”Bug Fixes
Section titled “Bug Fixes”e5f037277(#11018 by @amrbashir) Fix compilation error on macOS due to a missing feature forNSImage.
v2.0.0-rc.13
Section titled “v2.0.0-rc.13”Enhancements
Section titled “Enhancements”bc4804d48(#10924 by @madsmtm) Useobjc2internally and in examples, leading to better memory safety.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.0.0-rc.12
Breaking Changes
Section titled “Breaking Changes”bc4804d48(#10924 by @madsmtm) Change the pointer type ofPlatformWebview'sinner,controller,ns_windowandview_controllertoc_void, to avoid publically depending onobjc.
v2.0.0-rc.12
Section titled “v2.0.0-rc.12”New Features
Section titled “New Features”35bd9dd3d(#10977 by @amrbashir) AddmainBinaryNameconfig option to set the file name for the main binary.
Enhancements
Section titled “Enhancements”5eb036f33(#11002 by @lucasfernog) Handle macOS binary name change on theprocess::restartfunction.
Bug Fixes
Section titled “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
Section titled “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
Section titled “Breaking Changes”fe5ff1228(#10978 by @lucasfernog) RenamePermissionState::UnknowntoPermissionState::Prompt.
v2.0.0-rc.11
Section titled “v2.0.0-rc.11”Bug Fixes
Section titled “Bug Fixes”fafceec30(#10943 by @lucasfernog) Fixes mobile dev server proxy request URL with trailing slashes.
Dependencies
Section titled “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
v2.0.0-rc.10
Section titled “v2.0.0-rc.10”Dependencies
Section titled “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
Section titled “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.
v2.0.0-rc.9
Section titled “v2.0.0-rc.9”New Features
Section titled “New Features”0899e5083(#10884 by @amrbashir) Derive serdeSerializeforSafePathBuf431ca2c77(#10870 by @Legend-Master) AddFromStrimpl forSafePathBuf
Bug Fixes
Section titled “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
Section titled “What's Changed”27d018343(#10844 by @lucasfernog) Changes how the Info.plist is embedded on macOS development to avoid a clippy warning.
Dependencies
Section titled “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
Section titled “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.
v2.0.0-rc.8
Section titled “v2.0.0-rc.8”Enhancements
Section titled “Enhancements”d7e5c00e9(#10817 by @lucasfernog) Addedplugin:::PermissionStateenum.
v2.0.0-rc.7
Section titled “v2.0.0-rc.7”New Features
Section titled “New Features”1e441811e(#10786 by @amrbashir) On Windows, Add and emitDoubleClickvariant forTrayIconEvent.
Enhancements
Section titled “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
Section titled “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
Section titled “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
v2.0.0-rc.6
Section titled “v2.0.0-rc.6”What's Changed
Section titled “What's Changed”f4d5241b3(#10731 by @amrbashir) Update documentation icon path.
Dependencies
Section titled “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
v2.0.0-rc.5
Section titled “v2.0.0-rc.5”Dependencies
Section titled “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
v2.0.0-rc.4
Section titled “v2.0.0-rc.4”Enhancements
Section titled “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
Section titled “Bug Fixes”5c335ae9a(#10648 by @Flakebi) Prevent build script from rerunning unnecessarily by only writing files when the content changes.
Dependencies
Section titled “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
v2.0.0-rc.3
Section titled “v2.0.0-rc.3”Bug Fixes
Section titled “Bug Fixes”b1d9ffa1a(#10582 by @lucasfernog) Fix IPC fallback (postMessage implementation when custom protocol fails) hanging when sending responses.
What's Changed
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-rc.2
Section titled “v2.0.0-rc.2”Dependencies
Section titled “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
v2.0.0-rc.1
Section titled “v2.0.0-rc.1”Dependencies
Section titled “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
v2.0.0-rc.0
Section titled “v2.0.0-rc.0”Bug Fixes
Section titled “Bug Fixes”6755af230(#10435) Fix Specta remote implementation target forChannel.24445d71d(#10432) Fixes asset resolving when not using thecompressionfeature.
Enhancements
Section titled “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
Section titled “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
Section titled “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
Section titled “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:.
v2.0.0-beta.25
Section titled “v2.0.0-beta.25”New Features
Section titled “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
Section titled “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
Section titled “What's Changed”9546548ec(#10297 by @pewsheen) On macOS, set default titlebar style toVisibleto prevent webview move out of the view.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@2.0.0-beta.21 - Upgraded to
tauri-runtime@2.0.0-beta.21
v2.0.0-beta.24
Section titled “v2.0.0-beta.24”New Features
Section titled “New Features”Enhancements
Section titled “Enhancements”a7354f9a8(#10171 by @amrbashir) MarkAppHandle::restartandprocess::restartas diverging functions.
Bug Fixes
Section titled “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
Section titled “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
Section titled “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
v2.0.0-beta.23
Section titled “v2.0.0-beta.23”New Features
Section titled “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
Section titled “Enhancements”Bug Fixes
Section titled “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
Section titled “What's Changed”669b9c6b5(#9621) Set the gtk application to the identifier defined intauri.conf.jsonto ensure the app uniqueness.
Dependencies
Section titled “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
Section titled “Breaking Changes”3afe82894(#10134) ChangedWebviewWindow::navigateandWebview::navigatemethod signature to return aResult
v2.0.0-beta.22
Section titled “v2.0.0-beta.22”Bug Fixes
Section titled “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.
v2.0.0-beta.21
Section titled “v2.0.0-beta.21”New Features
Section titled “New Features”8a1ae2dea(#9843) Added an option to use a Xcode project for the iOS plugin instead of a plain SwiftPM project.
Bug Fixes
Section titled “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
Section titled “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
Section titled “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
Section titled “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
v2.0.0-beta.20
Section titled “v2.0.0-beta.20”New Features
Section titled “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
Section titled “Enhancements”Bug Fixes
Section titled “Bug Fixes”Security fixes
Section titled “Security fixes”d950ac123Only process IPC commands from the main frame.
Dependencies
Section titled “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
v2.0.0-beta.19
Section titled “v2.0.0-beta.19”New Features
Section titled “New Features”Bug Fixes
Section titled “Bug Fixes”fedca7386(#9720) Fix IPC tracing format incompatible between the custom protocol and the postMessage implementations.
Dependencies
Section titled “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
Section titled “Breaking Changes”v2.0.0-beta.18
Section titled “v2.0.0-beta.18”New Features
Section titled “New Features”Enhancements
Section titled “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
Section titled “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
v2.0.0-beta.17
Section titled “v2.0.0-beta.17”New Features
Section titled “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
Section titled “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
Section titled “Bug Fixes”6c047aee1(#9612) Fix window white flashing on exit on Windows98101cb17(#9561) Allow any headers on the IPC custom protocol.
Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime@2.0.0-beta.14 - Upgraded to
tauri-runtime-wry@2.0.0-beta.14
v2.0.0-beta.16
Section titled “v2.0.0-beta.16”New Features
Section titled “New Features”Bug Fixes
Section titled “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
Section titled “What's Changed”005fe8ce1(#9410) Fixclosable,maximizableandminimizableoptions not taking effect when used in tauri.conf.json or from JS APIs.
Dependencies
Section titled “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
v2.0.0-beta.15
Section titled “v2.0.0-beta.15”New Features
Section titled “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
Section titled “Enhancements”f1674fce6(#9420) Tauri's built-in commands for the JS api will now return simplified paths on Windows, removing the\\?\prefix.
Bug Fixes
Section titled “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
Section titled “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
Section titled “Breaking Changes”c8a82ad22(#9379) ChangedJsImage::into_imgto take a reference to aResourceTableinstead of aManager.
v2.0.0-beta.14
Section titled “v2.0.0-beta.14”New Features
Section titled “New Features”06833f4fa(#9100) AddedRectstruct.06833f4fa(#9100) AddWebview::boundsandWebview::set_boundsAPIs.
Enhancements
Section titled “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
Section titled “Bug Fixes”c33f6e6cf(#9211) Fixed an issue preventing webview/window creation events to not be emitted. This also fixed thegetByLabelandgetAllJavaScript functions.
What's Changed
Section titled “What's Changed”Dependencies
Section titled “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
Section titled “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
v2.0.0-beta.13
Section titled “v2.0.0-beta.13”Enhancements
Section titled “Enhancements”75f5cb401(#9214)tauri::Windowandtauri::WebviewWindownow implementraw_window_handle::HasDisplayHandle.
Bug Fixes
Section titled “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.
v2.0.0-beta.12
Section titled “v2.0.0-beta.12”New Features
Section titled “New Features”e227fe02f(#9156) Allow plugins to define (at compile time) JavaScript that are initialized whenwithGlobalTauriis true.
Enhancements
Section titled “Enhancements”Bug Fixes
Section titled “Bug Fixes”379cc2b35(#9165) Fixbasename(path, 'ext')JS API when removing all occurances ofextwhere it should only remove the last one.
Dependencies
Section titled “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
Section titled “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.
v2.0.0-beta.11
Section titled “v2.0.0-beta.11”New Features
Section titled “New Features”490a6b424(#9147) TheAssetstrait now include asetupmethod that lets you run initialization code for your custom asset provider.
Bug Fixes
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-beta.10
Section titled “v2.0.0-beta.10”New Features
Section titled “New Features”3e472d0af(#9115) AddedCapabilityBuilder::platformto link the runtime capability with a specific platform.
Enhancements
Section titled “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
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-beta.9
Section titled “v2.0.0-beta.9”New Features
Section titled “New Features”46de49aaa(#9059) Addedset_auto_resizemethod for the webview.d1e77acd8(#9011) Add a newImagetype in Rust and JS.
Enhancements
Section titled “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
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-beta.8
Section titled “v2.0.0-beta.8”New Features
Section titled “New Features”d7f56fef(#9014) Allow defining a permission that only applies to a set of target platforms via theplatformsconfiguration option.
Bug Fixes
Section titled “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
Section titled “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
Section titled “Breaking Changes”3657ad82(#9008) Allow defining permissions for the application commands viatauri_build::Attributes::app_manifest.
Breaking Changes
Section titled “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")].
v2.0.0-beta.7
Section titled “v2.0.0-beta.7”Enhancements
Section titled “Enhancements”bc5b5e67(#8984) Do not include a CSP tag in the application HTML and rely on the custom protocol response header instead.
Bug Fixes
Section titled “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
Section titled “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
v2.0.0-beta.6
Section titled “v2.0.0-beta.6”Bug Fixes
Section titled “Bug Fixes”v2.0.0-beta.5
Section titled “v2.0.0-beta.5”New Features
Section titled “New Features”Dependencies
Section titled “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
v2.0.0-beta.4
Section titled “v2.0.0-beta.4”Enhancements
Section titled “Enhancements”3fb414b6(#8914) Return an id when using fromManager::once_any,App::once,Window::once,Webview::once,WebviewWindow::onceandfs::Scope::once.
Dependencies
Section titled “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
Section titled “Breaking Changes”361ec37f(#8932) MovedProgressBarStatefromtauri-utilsto thetauri::windowmodule and removed theunity_urifield.
v2.0.0-beta.3
Section titled “v2.0.0-beta.3”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “What's Changed”76ce9f61(#3002) Enhance centering a newly created window, it will no longer jump to center after being visible.
Dependencies
Section titled “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
Section titled “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.
v2.0.0-beta.2
Section titled “v2.0.0-beta.2”Bug Fixes
Section titled “Bug Fixes”Dependencies
Section titled “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
v2.0.0-beta.1
Section titled “v2.0.0-beta.1”Bug Fixes
Section titled “Bug Fixes”v2.0.0-beta.0
Section titled “v2.0.0-beta.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-alpha.21
Section titled “v2.0.0-alpha.21”New Features
Section titled “New Features”Enhancements
Section titled “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
Section titled “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
Section titled “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
Section titled “Breaking Changes”2032228c(#8430) RemovedGlobalWindowEventstruct, and unpacked its field to be passed directly totauri::Builder::on_window_event.
v2.0.0-alpha.20
Section titled “v2.0.0-alpha.20”Dependencies
Section titled “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
v2.0.0-alpha.19
Section titled “v2.0.0-alpha.19”New Features
Section titled “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
Section titled “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
Section titled “Bug Fixes”effe5871(#8420) Fixes file scope checks on Android.f98ce5aa(#8328) Fix incorrect menu item forPredefinedMenuItem::close_window
v2.0.0-alpha.18
Section titled “v2.0.0-alpha.18”Bug Fixes
Section titled “Bug Fixes”Dependencies
Section titled “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
v2.0.0-alpha.17
Section titled “v2.0.0-alpha.17”Enhancements
Section titled “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
Section titled “Bug Fixes”Dependencies
Section titled “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
Section titled “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
v2.0.0-alpha.16
Section titled “v2.0.0-alpha.16”New Features
Section titled “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
Section titled “Enhancements”What's Changed
Section titled “What's Changed”fb10b879(#8039) Added theappplugin back into core.c9a9246c(#8007) Added thewindowplugin back into core.
Dependencies
Section titled “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
Section titled “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
v2.0.0-alpha.15
Section titled “v2.0.0-alpha.15”Enhancements
Section titled “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
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-alpha.14
Section titled “v2.0.0-alpha.14”Bug Fixes
Section titled “Bug Fixes”Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@1.0.0-alpha.2
Breaking Changes
Section titled “Breaking Changes”v2.0.0-alpha.13
Section titled “v2.0.0-alpha.13”Breaking Changes
Section titled “Breaking Changes”v2.0.0-alpha.12
Section titled “v2.0.0-alpha.12”Enhancements
Section titled “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
Section titled “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
Section titled “What's Changed”Dependencies
Section titled “Dependencies”- Upgraded to
tauri-runtime@1.0.0-alpha.1 - Upgraded to
tauri-runtime-wry@1.0.0-alpha.1
Breaking Changes
Section titled “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.
v2.0.0-alpha.11
Section titled “v2.0.0-alpha.11”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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.
v2.0.0-alpha.10
Section titled “v2.0.0-alpha.10”New Features
Section titled “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
Section titled “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
Section titled “Bug Fixes”v2.0.0-alpha.9
Section titled “v2.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.
v2.0.0-alpha.8
Section titled “v2.0.0-alpha.8”- Fixes boolean plugin parameters freezing the application.
v2.0.0-alpha.7
Section titled “v2.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.
v2.0.0-alpha.6
Section titled “v2.0.0-alpha.6”- Fix compilation issues without the shell API features.
v2.0.0-alpha.5
Section titled “v2.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.
v2.0.0-alpha.4
Section titled “v2.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.
v2.0.0-alpha.3
Section titled “v2.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.
v2.0.0-alpha.2
Section titled “v2.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
v2.0.0-alpha.1
Section titled “v2.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.
v2.0.0-alpha.0
Section titled “v2.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.
v1.6.0
Section titled “v1.6.0”New Features
Section titled “New Features”Enhancements
Section titled “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
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@0.14.4
v1.5.4
Section titled “v1.5.4”Enhancements
Section titled “Enhancements”Bug Fixes
Section titled “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
Section titled “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
v1.5.3
Section titled “v1.5.3”Enhancements
Section titled “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
Section titled “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
Section titled “Dependencies”- Upgraded to
tauri-runtime-wry@0.14.2 - Upgraded to
tauri-macros@1.4.2
v1.5.2
Section titled “v1.5.2”Bug Fixes
Section titled “Bug Fixes”21cdbb41(#7982) Set the correcttruncateoption onOpenOptionsso thatwrite_filecan completely overwrite existing files.
v1.5.1
Section titled “v1.5.1”Bug Fixes
Section titled “Bug Fixes”v1.5.0
Section titled “v1.5.0”New Features
Section titled “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
Section titled “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
Section titled “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
Section titled “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
v1.4.1
Section titled “v1.4.1”Bug Fixes
Section titled “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
Section titled “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.
v1.4.0
Section titled “v1.4.0”New Features
Section titled “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
Section titled “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
Section titled “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.
v1.3.0
Section titled “v1.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.
v1.2.5
Section titled “v1.2.5”- Block remote URLs from accessing the IPC.
- 9c0593c33 feat(core): block remote URLs from accessing the IPC on 2023-04-12
v1.2.4
Section titled “v1.2.4”- Pin
ignoreto=0.4.18.- adcb082b chore(deps): pin
ignoreto =0.4.18 on 2023-01-17
- adcb082b chore(deps): pin
v1.2.3
Section titled “v1.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
v1.2.2
Section titled “v1.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.
v1.2.1
Section titled “v1.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.
v1.2.0
Section titled “v1.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.
v1.1.4
Section titled “v1.1.4”- Block remote URLs from accessing the IPC.
- 58ea0b452 feat(core): block remote URLs from accessing the IPC on 2023-04-12
v1.1.3
Section titled “v1.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
v1.1.2
Section titled “v1.1.2”- Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
v1.1.1
Section titled “v1.1.1”- Add missing allowlist config for
set_cursor_grab,set_cursor_visible,set_cursor_iconandset_cursor_positionAPIs.
v1.1.0
Section titled “v1.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.
v1.0.9
Section titled “v1.0.9”- Block remote URLs from accessing the IPC.
- fa90214b0 feat(core): block remote URLs from accessing the IPC on 2023-04-12
v1.0.8
Section titled “v1.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
v1.0.7
Section titled “v1.0.7”- Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
v1.0.6
Section titled “v1.0.6”- Fix
fs.readDirrecursive option reading symlinked directories that are not allowed by the scope.
v1.0.5
Section titled “v1.0.5”- Escape the MSI file path when running msiexec via powershell.
v1.0.4
Section titled “v1.0.4”- Reduce the amount of allocations when converting cases.
v1.0.3
Section titled “v1.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.
v1.0.2
Section titled “v1.0.2”- Fixes check for local URL when an external URL is provided to the window and it is based on the configured devPath.
v1.0.1
Section titled “v1.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.
v1.0.0
Section titled “v1.0.0”- Allow choosing multiple folders in
dialog.open. - Upgrade to
stable!
v1.0.0-rc.17
Section titled “v1.0.0-rc.17”- Add
Menu::os_defaultwhich will create a menu filled with default menu items and submenus.
v1.0.0-rc.16
Section titled “v1.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.
v1.0.0-rc.15
Section titled “v1.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.
v1.0.0-rc.14
Section titled “v1.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.
v1.0.0-rc.13
Section titled “v1.0.0-rc.13”- Fix
cannot find macro `message_dialog`error.
v1.0.0-rc.12
Section titled “v1.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>.
v1.0.0-rc.11
Section titled “v1.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.
v1.0.0-rc.10
Section titled “v1.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.
v1.0.0-rc.9
Section titled “v1.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.
v1.0.0-rc.8
Section titled “v1.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.
v1.0.0-rc.7
Section titled “v1.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.
v1.0.0-rc.6
Section titled “v1.0.0-rc.6”- Fixes the
WindowEventtype used onWindow::on_window_event. - Fixes
WindowEvent::Destroyednot firing.
v1.0.0-rc.5
Section titled “v1.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.
v1.0.0-rc.4
Section titled “v1.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.
v1.0.0-rc.3
Section titled “v1.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.
v1.0.0-rc.2
Section titled “v1.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.
v1.0.0-rc.1
Section titled “v1.0.0-rc.1”- Change default value for the
freezePrototypeconfiguration tofalse.
v1.0.0-rc.0
Section titled “v1.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<Window> 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.
v1.0.0-beta-rc.4
Section titled “v1.0.0-beta-rc.4”- Update
tauri-macrosandtauri-utilsto1.0.0-beta-rc.1.
v1.0.0-beta-rc.3
Section titled “v1.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.
v1.0.0-beta-rc.2
Section titled “v1.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.
v1.0.0-beta-rc.1
Section titled “v1.0.0-beta-rc.1”- Missing the
filesproperty in the package.json which mean that thedistdirectory was not published and used.
v1.0.0-beta-rc.0
Section titled “v1.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<T>.
- 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.
v1.0.0-beta.8
Section titled “v1.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.
v1.0.0-beta.7
Section titled “v1.0.0-beta.7”- Cleanup application on
AppHandle#exit. - Fix
raw-window-handledependency declaration.
v1.0.0-beta.6
Section titled “v1.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.
v1.0.0-beta.5
Section titled “v1.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
v1.0.0-beta.4
Section titled “v1.0.0-beta.4”- Double clicking a
data-tauri-drag-regionelement will toggle the window maximized state. - Fixes
assetprotocol crashing application.
v1.0.0-beta.3
Section titled “v1.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.
v1.0.0-beta.2
Section titled “v1.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).
v1.0.0-beta.1
Section titled “v1.0.0-beta.1”- Adds a mutable
configgetter on theContextstruct.
v1.0.0-beta.0
Section titled “v1.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.
v0.11.1
Section titled “v0.11.1”- Update webview-official dependency which fix compatibility on macOS.
v0.11.0
Section titled “v0.11.0”- Match writeBinaryFile command name between js and rust
v0.10.0
Section titled “v0.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.
v0.9.2
Section titled “v0.9.2”- Bump all deps as noted in #975, #976, #977, #978, and #979.
v0.9.1
Section titled “v0.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
v0.9.0
Section titled “v0.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.
v0.8.0
Section titled “v0.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
v0.7.5
Section titled “v0.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).
v0.7.4
Section titled “v0.7.4”- Ignoring non UTF-8 characters on the loopback command output.
- f340b29 fix(tauri) addition to the previous commit on 2020-07-10
v0.7.3
Section titled “v0.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.
v0.7.2
Section titled “v0.7.2”Bumped due to dependency.
v0.7.1
Section titled “v0.7.1”- Fixes the assets embedding into the binary.
v0.7.0
Section titled “v0.7.0”- The execute_promise and execute_promise_sync helpers now accepts any tauri::Result<T> 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.
v0.6.2
Section titled “v0.6.2”- Fixes the Windows build with the latest Windows SDK.
v0.6.0
Section titled “v0.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.
© 2026 Tauri Contributors. CC-BY / MIT