Skip to content

Latest commit

 

History

History
1539 lines (1242 loc) · 190 KB

CHANGELOG.md

File metadata and controls

1539 lines (1242 loc) · 190 KB

Changelog

[1.0.8]

  • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
    • f0602e7c Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22

[1.0.7]

  • Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
    • bcd9dc7f fix(core): escape glob characters in drop/dialogs , closes #5234 (#5237) on 2022-11-08

[1.0.6]

  • Fix fs.readDir recursive option reading symlinked directories that are not allowed by the scope.
    • bb178829 fix(endpoints/fs/readDir): don't read symlinks that are not allowed b… (#5123) on 2022-09-08

[1.0.5]

  • Escape the MSI file path when running msiexec via powershell.

[1.0.4]

  • Reduce the amount of allocations when converting cases.
    • bc370e32 feat: reduce the amount of heck-related allocations (#4634) on 2022-07-11

[1.0.3]

  • tauri::Builder will now include a default menu for macOS without explicitly using Menu::os_default, you can still override it through tauri::Builder::menu or remove it using tauri::Builder::enable_macos_default_menu(false).
    • 91055883 feat: add implicit default menu for macOS only, closes #4551 (#4570) on 2022-07-04
  • Use toString() on message/confirm/ask dialogs title and message values.
    • b8cd2a79 feat(api): call toString() on dialog title and message, closes #4583 (#4588) on 2022-07-04
  • Fix stack overflow on Windows on commands by changing the implementation of the async_runtime::spawn method.
    • 7e3ac847 fix(core): command stack overflow on Windows, closes #4548 (#4562) on 2022-07-03
  • Emits RunEvent::Exit prior to killing child processes managed by Tauri, allowing graceful shutdown of sidecar binaries.
    • 34879f73 fix: allow graceful shutdown of sidecar commands on exit (#4561) on 2022-07-03
  • Added option to disable tray menu on left click on macOS.
    • f8a3becb feat(core): add option to disable tray menu on left click, closes #4584 (#4587) on 2022-07-05
  • Only run the updater default dialog mode in supported platforms or development mode.
    • e29fff25 fix(updater): do not run in dialog mode on .deb, closes #4573 (#4577) on 2022-07-05
  • Configure the updater to relaunch after installing the update on Windows.

[1.0.2]

  • Fixes check for local URL when an external URL is provided to the window and it is based on the configured devPath.
    • 2e74d20e fix(core): check whether external url is local, ref #4449 (#4536) on 2022-06-30

[1.0.1]

  • Added fn new constructors for PhysicalSize, LogicalSize, PhysicalPosition and LogicalPosition and missing conversion methods.
    • c7d13a1c feat(core): add missing methods to the dpi module (#4393) on 2022-06-19
  • 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.
    • 307c2ebf feat(core): set macOS app icon in development (#4385) on 2022-06-19
  • Fixes the error message when using the window.unminimize API without enabling it in the allowlist.
  • Initialize Tauri script when devPath is an external URL with path.
    • 079b1cc0 fix(core): properly get external URL origin, closes #4414 (#4417) on 2022-06-21
  • Fixes deadlock when a plugin window ready event needs to block the thread waiting on the event loop.
    • 9d33d093 fix(core): deadlock on plugin webview ready hook (#4462) on 2022-06-24
  • Adjust the updater to fallback to $HOME/.cache or the current working directory as temp directory if the system default is in a different mount point.
    • fd125f76 fix(updater): fallback if tmp is on different mount point, closes #4500 (#4504) on 2022-06-28
  • Properly fill the origin window when using emit_to and emit_all from Window.
    • 643ae846 fix: fire window-specific event on Window emit_to/emit_all, closes #4493 (#4498) on 2022-06-28
  • Implement raw_window_handle::HasRawWindowHandle on Linux.
    • 3efbc67f feat: implement raw_window_handle on Linux (#4469) on 2022-06-26
  • Added on_drop hook to the plugin::Builder.
    • be4bb391 feat: add AppHandle::remove_plugin and plugin on_drop, closes #4361 (#4443) on 2022-06-23
  • Refactored the tauri-runtime-wry plugin interface.
    • e39e2999 refactor(tauri-runtime-wry): enhance plugin interface (#4476) on 2022-06-27
  • Added AppHandle::remove_plugin.
    • be4bb391 feat: add AppHandle::remove_plugin and plugin on_drop, closes #4361 (#4443) on 2022-06-23
  • The theme API is now implemented on macOS 10.14+.
    • 6d94ce42 feat(core): theme is now implemented on macOS (#4380) on 2022-06-17
  • Suppress unused variable warning in release builds.
    • 45981851 chore(lint): unused variable warnings for release builds (#4411) on 2022-06-22
  • Update tao to 0.12 and wry to 0.19.
    • f6edc6df chore(deps): update tao to 0.12, wry to 0.19, closes #3220 (#4502) on 2022-06-28
  • Added Notification::notify API behind the windows7-compat Cargo feature, which includes Windows 7 support.
    • 57039fb2 fix(core): add windows 7 notification support (#4491) on 2022-06-28

[1.0.0]

  • Allow choosing multiple folders in dialog.open.
  • Upgrade to stable!

[1.0.0-rc.17]

  • Add Menu::os_default which will create a menu filled with default menu items and submenus.

[1.0.0-rc.16]

  • Breaking change: The TrayIcon enum has been removed and now Icon is used instead. This allows you to use more image formats and use embedded icons on Linux.
    • 4ce8e228 refactor(core): use Icon for tray icons (#4342) on 2022-06-14

[1.0.0-rc.15]

  • Fixes filesystem scope check when using the HTTP API to upload files.
    • 8ce5b762 fix: scope check when using the HTTP API to upload files closes #4312 on 2022-06-10
  • Fixes a memory leak in the command system.
    • f72cace3 fix: never remove ipc callback & mem never be released (#4274) on 2022-06-05
  • Fixes the Content-Type header value when sending multipart requests using the reqwest-client feature.
    • f6205afc fix(core): wrong Content-Type when using reqwest's multipart, ref #4312 on 2022-06-10
  • Kill sidecar processes on app exit even when only the shell-sidecar feature is enabled.
    • 6ba91272 Fix: sidecar cleanup when only shell-sidecar is enabled (#4254) on 2022-06-04
  • Fixes a crash when a request is made to https://tauri.$URL on Windows where $URL is not localhost/** e.g. https://tauri.app.
    • 74457222 fix(core): handle requests to https://tauri.* on Windows (#4270) on 2022-06-05
  • Set notification icon to app icon on Linux.
    • 235e448d fix: add a default icon to notifications on linux (#4283) on 2022-06-09
  • 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 be async in other to prevent it until the issue is fixed in Webview2.
    • 69ae6f14 refactor(window): block main thread when creating a new window (#4298) on 2022-06-08
  • No longer ask for permission to send notifications and always allow it.
    • f482b094 fix: remove notification permission prompt (#4302) on 2022-06-09
  • Breaking change: Removed the settings module.
    • f482b094 fix: remove notification permission prompt (#4302) on 2022-06-09
  • Breaking change: Removed the gtk-tray and ayatana-tray Cargo features.
    • 6216eb49 refactor(core): drop ayatana-tray and gtk-tray Cargo features (#4247) on 2022-06-02
  • Call preventDefault() in the mousedown event handler for [data-tauri-drag-region] elements.
    • a0e20621 fix: preventDefault mousedown on data-tauri-drag-region, closes #4059 on 2022-06-13
  • Set permission to 0o700 for the tmp folder used to move the current AppImage on the updater process.
    • b77877fd fix(updater): set tmp folder permissions (#4311) on 2022-06-12

[1.0.0-rc.14]

  • Breaking change: PackageInfo::version is now a semver::Version instead of a String.
    • 2badbd2d refactor: force semver versions, change updater should_install sig (#4215) on 2022-05-25
    • a7388e23 fix(ci): adjust change file to include tauri-utils and tauri-codegen on 2022-05-27
  • Breaking change: UpdateBuilder::should_update now takes the current version as a semver::Version and a RemoteRelease struct, allowing you to check other release fields.
    • 2badbd2d refactor: force semver versions, change updater should_install sig (#4215) on 2022-05-25
  • Breaking change: The tauri::UpdaterEvent::UpdateEvent date field is now an Option<time::OffsetDateTime>.
    • ac7656ab refactor(updater): strong type for the pub_date field, ref #4162 (#4218) on 2022-05-25
  • Breaking change: The updater response pub_date now must be a valid RFC 3339 string.
    • ac7656ab refactor(updater): strong type for the pub_date field, ref #4162 (#4218) on 2022-05-25

[1.0.0-rc.13]

  • Fix cannot find macro `message_dialog` error.

[1.0.0-rc.12]

  • Expose option to set the dialog type.
    • f46175d5 feat(core): expose option to set dialog type, closes #4183 (#4187) on 2022-05-21
  • Expose title option in the message dialog API.
    • ae99f991 feat(core): expose message dialog's title option, ref #4183 (#4186) on 2022-05-21
  • Immediately create windows when using tauri::App as manager.
    • 52d17754 fix(core): immediately create window when using tauri::App, closes #4170 (#4172) on 2022-05-21
  • Account the monitor position when centering a window.
    • a7a9fde1 fix(core): account for monitor position when centering window (#4166) on 2022-05-21
  • Allow the canonical, absolute form of a path for the filesystem scope on Windows if std::fs::canonicalize returns a path, fallback to \\?\$PATH.
    • 78f2565e fix: allow return value of fs::canonicalize on fs scope, closes #4130 (#4188) on 2022-05-21
  • Fixes updater documentation not showing on docs.rs.
    • 55892c35 fix(core): updater documentation not showing on docs.rs (#4190) on 2022-05-22
  • Fixes HTTP timeout not working on Windows when using the attohttpc client.
    • d99c5d58 fix(core): HTTP timeout not working on Windows, closes #4050 (#4185) on 2022-05-21
  • Update windows-rs to 0.37.0, which requires Rust 1.61.0+.
    • 2326be39 feat(core): update windows-rs to 0.37.0 (#4199) on 2022-05-24
  • Breaking change: The WindowBuilder struct now has a lifetime annotation WindowBuilder<R: Runtime, 'a>.
    • 52d17754 fix(core): immediately create window when using tauri::App, closes #4170 (#4172) on 2022-05-21

[1.0.0-rc.11]

  • Added the App::get_cli_matches helper function.
    • 617f1144 feat(core): add App::get_cli_matches helper ref #4145 on 2022-05-17
  • Fixes fileDropEnabled option not working.
    • 706fcbd3 fix(core): fileDropEnabled option is not working when creating a new WebviewWindow (#4146) on 2022-05-18
  • Prepare window icon and menu even when loading remote URLs. Previously it was behind a is local URL? condition.
    • 25aa4347 fix(core): prepare window icon and menu on remote URLs, closes #4131 (#4140) on 2022-05-16
  • Fix .mjs not being recognised as a file extension for JavaScript files (text/javascript).
  • Added PathResolver::resolve_resource API.
    • e35aaebc feat(core): add PathResolver::resolve_resource API (#4116) on 2022-05-13
  • Allow configuring the display options for the MSI execution allowing quieter updates.
    • 9f2c3413 feat(core): configure msiexec display options, closes #3951 (#4061) on 2022-05-15

[1.0.0-rc.10]

  • Update wry to 0.16.2 and webkit2gtk to 0.18.0.
    • 71a553b7 chore(deps): update wry to 0.16.2, webkit2gtk to 0.18.0 (#4099) on 2022-05-10
  • Adds the App#wry_plugin API to inject a plugin for the wry integration.
    • c8e0e5b9 feat(tauri-runtime-wry): add plugin API (#4094) on 2022-05-10

[1.0.0-rc.9]

  • The dangerous_allow_asset_csp_modification configuration value has been changed to allow a list of CSP directives to disable.
    • 164078c0 feat: allow limiting dangerousDisableAssetCspModification, closes #3831 (#4021) on 2022-05-02
  • The file drop event payloads are now percent-decoded.
    • a0ecd81a fix(core): percent decode file drop payloads, closes #4034 (#4035) on 2022-05-03
  • Fix dialog crash on macOS when the default_path value is just the file name.
    • d31167c5 fix(core): dialog crashing on macOS when the parent is empty (#4028) on 2022-05-02
  • Fixes the title option being ignored in the dialog API endpoints.
  • Fixes nested isolation iframe injection.
  • Deserialize numeric values (seconds) in the http API ClientBuilder.connect_timeout and HttpRequestBuilder.timeout fields.
    • f3c5ca89 fix(core): http api connect_timeout deserialization, closes #4004 (#4006) on 2022-04-29
  • Fix updater dialog removing single and double quotes from the release notes
    • 0180dcc8 fix(updater): remove single&double quotes escaping in updater dialog … (#4047) on 2022-05-04
  • Expose methods to access the underlying native handles of the webview.
    • c82b4761 feat(core): expose with_webview API to access the platform webview (#4058) on 2022-05-04

[1.0.0-rc.8]

  • Breaking change: Removed the ayatana-tray from the default features. You must select one of ayatana-tray and gtk-tray to use system tray on Linux.
    • 62cdb2b3 refactor(tauri): remove ayatana-tray from the default features (#3976) on 2022-04-26
  • Re-export the GlobalShortcutManager when the global-shortcut feature is enabled.
    • 62cdb2b3 refactor(tauri): remove ayatana-tray from the default features (#3976) on 2022-04-26
  • Fixes docs.rs documentation build.

[1.0.0-rc.7]

  • Breaking change: Removed tauri::api::file::ArchiveFormat::Plain.
    • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
  • Fallback to {path}.html when {path} is not found in the Tauri custom protocol handler.
    • 7864d41d feat(core): fallback to {path}.html in Tauri protocol loader ref #3887 (#3939) on 2022-04-21
  • Breaking change: Use ayatana-appindicator for Linux system tray by default. Use the gtk-tray Cargo feature to use libappindicator instead.
    • f2a30d8b refactor(core): use ayatana appindicator by default, keep option to use gtk (#3916) on 2022-04-19
  • Reduce the amount of generated code for the API endpoints.
    • c23f139b perf(core): improve binary size with api enum serde refactor (#3952) on 2022-04-24
  • *Breaking change:: Added the clipboard Cargo feature.
    • 24e4ff20 refactor(core): add clipboard Cargo feature, enhancing binary size (#3957) on 2022-04-24
  • Breaking change: The process Command API stdio lines now includes the trailing \r.
    • b5622882 fix(cli): exit on non-compilation Cargo errors, closes #3930 (#3942) on 2022-04-22
  • Expose Window cursor APIs set_cursor_grab, set_cursor_visible, set_cursor_icon and set_cursor_position.
  • Breaking change: The tauri::api::file::Extract#extract_file function has been moved to tauri::api::file::Entry#extract.
    • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
  • Breaking change: The tauri::api::file::Extract#files function has been renamed to with_files for performance reasons.
    • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
  • Improved the performance of the tauri::api::fs::Extract API.
    • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
  • Fixes a panic when using the create_tao_window API.
    • 320329a9 fix(core): insert to webview_id_map on tao window creation, closes #3883 (#3932) on 2022-04-21
  • Fixes the HTTP API form text fields.
    • cc356084 fix(core): do not serialize strings in http api form, closes #3910 (#3928) on 2022-04-20
  • Set the application bundle identifier for the notifications on macOS.
    • f67ae6bd fix(core): set bundle id for notifications on macOS (#3839) on 2022-04-01
  • Fixes a panic when a menu event is triggered when all windows are minimized on macOS.
    • 70ff55c1 fix(core): panic on menu event with minimized windows, closes #3902 (#3918) on 2022-04-20
  • Fixes a rendering issue when resizing the window with the devtools open.
  • Fixes the WindowBuilder export.
    • 985d2508 fix(tauri): export WindowBuilder struct instead of trait, closes #3827 (#3833) on 2022-03-31
  • The HTTP API now supports multipart/form-data requests. You need to set the Content-Type header and enable the http-multipart Cargo feature.
    • 1397d912 feat(core): add support to multipart/form-data requests, closes #2118 (#3929) on 2022-04-22
  • *Breaking change:: Added the global-shortcut Cargo feature.
    • e11878bc refactor(core): add global-shortcut Cargo feature, enhancing binary size (#3956) on 2022-04-24
  • Added tauri::api::http::HttpRequestBuilder#header method.
    • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
  • Breaking change: The tauri::api::http::HttpRequestBuilder#headers method now takes header::HeaderMap instead of a HashMap.
    • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
  • Breaking change: The tauri::api::http::Response#headers method now returns &header::HeaderMap instead of &HashMap.
    • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
  • Breaking change: The api::http timeouts are now represented as std::time::Duration instead of a u64.
    • 0ecfad59 refactor(updater): unset request timeout, add builder setter (#3847) on 2022-04-02
  • Breaking change: The tauri::api::http::FormPart::Bytes enum variant has been renamed to File with a value object { file, mime, file_name }.
    • 1397d912 feat(core): add support to multipart/form-data requests, closes #2118 (#3929) on 2022-04-22
  • Breaking change: Removed App::create_window, AppHandle::create_window, Builder::create_window and Window::create_window.
    • 7c7d854a refactor(core): remove deprecated APIs (#3834) on 2022-04-01
  • Breaking change: Removed tauri::api::http::FormPart::File.
    • cc356084 fix(core): do not serialize strings in http api form, closes #3910 (#3928) on 2022-04-20
  • Added WindowEvent::ThemeChanged(theme).
  • Added theme getter on Window.
  • Added UpdateResponse::body and UpdateResponse::date.
    • c7696f34 feat(updater): add body and date getters (#3802) on 2022-03-29
  • Breaking change: Removed the tauri::updater::Error::UnsupportedPlatform variant and added UnsupportedLinuxPackage, UnsupportedOs and UnsupportedArch for better error information.
    • ed716793 refactor(updater): improve unsupported error variants, closes #3817 (#3849) on 2022-04-05
  • Add updater Downloaded status event.
    • 9712ed1a feat(updater): add Downloaded status event (#3804) on 2022-04-01
  • Allow setting app updater request headers via AppHandle::updater().header().
    • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
  • The updater default timeout is now unset, and the UpdateBuilder has a timeout setter.
    • 0ecfad59 refactor(updater): unset request timeout, add builder setter (#3847) on 2022-04-02
  • Added theme setter to the WindowBuilder.

[1.0.0-rc.6]

  • Fixes the WindowEvent type used on Window::on_window_event.
    • 06aa87b6 fix(core): WindowEvent type used on Window::on_window_event (#3796) on 2022-03-28
  • Fixes WindowEvent::Destroyed not firing.
    • 169b5035 fix(core): actually fire WindowEvent::Destroyed (#3797) on 2022-03-28

[1.0.0-rc.5]

  • Added updater_target method to the Builder struct.

    • 579312f8 feat(updater): separate intel and apple silicon targets, closes #3359 (#3739) on 2022-03-23
  • Added an option to disable the CSP injection of distributable assets nonces and hashes.

    • f6e32ee1 feat(core): add dangerous option to disable compile time CSP injection (#3775) on 2022-03-28
  • Toggle devtools when Ctrl + Shift + I or Command + Option + I is pressed.

  • Use asynchronous file dialog on macOS and Windows to properly set the parent window.

  • The Error enum is now Send + Sync.

    • da1e8793 feat(core): improve and cleanup the Error enum (#3748) on 2022-03-22
  • Do not allow path traversal on the asset protocol.

    • 34a402f9 fix(core): do not allow path traversal on the asset protocol (#3774) on 2022-03-27
  • Properly apply the CSP when loading a route that fallbacks to index.html.

    • bcd43168 fix(core): properly add CSP header to fallback routes (#3641) on 2022-03-08
  • Fix CSP usage on Linux when changing it via the on_web_resource_request handler.

    • f5efc248 fix(core): runtime CSP changes on Linux on 2022-03-07
  • Improved the updater response validation and error messages.

    • dbc2873e feat(updater): improve validation and error messages, closes #3761 (#3780) on 2022-03-27
  • Breaking change: The MenuItem::About variant is now associated with a tuple value (String, AboutMetadata).

    • 5fb74332 chore(deps): update wry to 0.14, tao to 0.7 (#3790) on 2022-03-28
  • 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 #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::hwnd method now returns HWND from windows-rs crate 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.
    • 579312f8 feat(updater): separate intel and apple silicon targets, closes #3359 (#3739) on 2022-03-23
  • Breaking change: Removed RunEvent::CloseRequested and RunEvent::WindowClosed and added RunEvent::WindowEvent.
    • edad9f4f refactor(core): add RunEvent::WindowEvent (#3793) on 2022-03-28
  • Breaking change: Removed window_label from RunEvent::ExitRequested.
    • 9ddf8d84 fix(core): properly fire WindowEvent::Destroyed, closes #3688 (#3778) on 2022-03-28
  • Breaking change: The tauri:// events are no longer emitted to listeners using Window::listen. Use the App::run closure, Window::on_window_event and Window::on_menu_event instead.
    • 5d538ec2 refactor(core): use the event loop proxy to send updater events (#3687) on 2022-03-15
  • The App::setup closure can now return a boxed error directly.
    • da1e8793 feat(core): improve and cleanup the Error enum (#3748) on 2022-03-22
  • Implement Debug for tauri::State.
  • Breaking change: The Manager::manage function now returns a bool indicating whether the type is already managed or not.
    • 263b45e1 refactor(core): return boolean on Manager::manage (#3682) on 2022-03-13
  • Set the Access-Control-Allow-Origin header on the tauri protocol response with the initial webview URL as value.
    • 1730b1a5 feat(core): enable CORS on the tauri protocol (#3750) on 2022-03-22
  • Breaking change: The tauri_runtime crate is no longer exported since its API is not stable.
    • 1099a969 refactor(core): do not export tauri_runtime on tauri (#3749) on 2022-03-22
  • Added Temp to the BaseDirectory enum.
    • 266156a0 feat(core): add BaseDirectory::Temp and $TEMP variable (#3763) on 2022-03-24
  • Added $TEMP to the allowed variables to the filesystem and asset protocol scopes.
    • 266156a0 feat(core): add BaseDirectory::Temp and $TEMP variable (#3763) on 2022-03-24
  • Update wry to 0.14 and tao to 0.7.
    • f2d24ef2 chore(deps): update wry (#1482) on 2021-04-14
    • e267ebf1 Apply Version Updates From Current Changes (#1486) on 2021-04-14
    • 5fb74332 chore(deps): update wry to 0.14, tao to 0.7 (#3790) on 2022-03-28
  • Added updater method to App and AppHandle, a builder to check for app updates.
    • 4094494a feat(core): add API to manually trigger updater check (#3712) on 2022-03-17
    • c64268f9 feat(updater): expose builder, allow setting a custom version checker (#3792) on 2022-03-28
  • Allow using a custom updater version checker via App::updater().should_install().
    • c64268f9 feat(updater): expose builder, allow setting a custom version checker (#3792) on 2022-03-28
  • Added download progress events to the updater.
    • f0db3f9b feat(updater): add download progress events (#3734) on 2022-03-18
  • Send updater events to the App::run closure.
    • 5d538ec2 refactor(core): use the event loop proxy to send updater events (#3687) on 2022-03-15
  • Run the updater on startup even if no window was created.
    • c4ca80f9 feat(core): use AppHandle instead of Window on the updater logic (#3702) on 2022-03-15
  • Properly fire the window destroyed event.
    • 9ddf8d84 fix(core): properly fire WindowEvent::Destroyed, closes #3688 (#3778) on 2022-03-28
  • Added close_devtools and is_devtools_open APIs to the Window struct.
  • Added the WindowEvent::FileDrop variant.
  • Added a configuration flag for disallowing install downgrades on Windows. Breaking change: The default behavior on Windows is now to allow downgrades.
    • 8b807e09 refactor(bundler): allow downgrades, add option to disallow on Windows (#3777) on 2022-03-27

[1.0.0-rc.4]

  • Run AppHandle cleanup code before restarting the application on the process > relaunch API.
    • 9c65abce feat(core): run cleanup code on the relaunch API (#3629) on 2022-03-07
  • Breaking change: The Builder#create_window API now returns a Result validating the window label.
    • 64e00542 refactor(core): do not panic on invalid window labels,#3544 (#3596) on 2022-03-03
  • Added tsp config option under tauri > bundle > windows, which enables Time-Stamp Protocol (RFC 3161) for the timestamping server under code signing on Windows if set to true.
    • bdd5f7c2 fix: add support for Time-Stamping Protocol for Windows codesigning (fix #3563) (#3570) on 2022-03-07
  • Revert the clap usage back to the version 3.0 API.
    • 2b554c38 fix(core): revert to clap 3.0 API, allow deprecations, closes #3549 (#3552) on 2022-02-24
  • The tauri::api::process::Command API now properly reads stdout and stderr messages that ends with a carriage return (\r) instead of just a newline (\n).
    • 0a0de8ab fix: read Command output ending with a carriage return, closes #3508 (#3523) on 2022-02-24
  • Fixes filesystem and asset scope stripping the first component of the allowed path.
    • 4d0e2ecc fix(core): scope should not strip the first path component, closes #3592 (#3602) on 2022-03-03
  • Ignore trailing slashes on path scope validation.
    • 929a83dd fix(core): ignore trailing slashes on scope validation, closes #3580 (#3601) on 2022-03-03
  • Fixes Command::output and Command::status deadlock when running on async commands.
    • 0163489e fix(core): safe_block_on usage on async contexts, closes #3505 (#3513) on 2022-02-24
  • Update tray menu id map when SystemTrayHandle::set_menu is called.
    • da882431 fix(core): update tray menu ids on set_menu, closes #3608 (#3611) on 2022-03-04
  • Allow absolute paths on the filesystem APIs as long as it does not include parent directory components.
    • b744cd27 feat: extend scopes with user selected paths, closes #3591 (#3595) on 2022-03-03
  • Breaking change: The tauri::api::file::Extract API is now available when the fs-extract-api feature is enabled.
    • 0f155898 fix(core): docs.rs on Windows and macOS (#3566) on 2022-03-02
  • Allow listening to events on the filesystem and asset scopes.
    • 58070c1e feat(core): filesystem and asset protocol scope events (#3609) on 2022-03-04
  • Allow configuring forbidden paths on the asset and filesystem scopes.
    • 983ccb81 feat(core): allow denying paths on the fs and asset scopes (#3607) on 2022-03-03
  • 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).
    • b744cd27 feat: extend scopes with user selected paths, closes #3591 (#3595) on 2022-03-03
  • The HTTP scope now matches the entire URL using a glob pattern instead of only its path.
    • 944b124c feat(core): enhance HTTP scope glob validation, closes #3507 (#3515) on 2022-02-24
  • Parse window icons at compile time.
    • 8c935872 refactor(core): move png and ico behind Cargo features (#3588) on 2022-03-05
  • Breaking change: Move ico and png parsing behind icon-ico and icon-png Cargo features.
    • 8c935872 refactor(core): move png and ico behind Cargo features (#3588) on 2022-03-05
  • Return an error when creating a window with an invalid label instead of panicking.
    • 64e00542 refactor(core): do not panic on invalid window labels,#3544 (#3596) on 2022-03-03
  • Allows the configuration CSP to be an object mapping a directive name to its source list.
    • 3fe0260f feat(core): allow CSP configuration to be an object, ref #3533 (#3603) on 2022-03-04
  • Allow range in the form of bytes=0-* on the asset protocol.
  • Reimplement endpoint to read file as string for performance.
    • 834ccc51 feat(core): reimplement readTextFile for performance (#3631) on 2022-03-07
  • Breaking change: Renamed the command Cargo feature to process-command-api.
    • 4e1af005 refactor(core): rename command feature to process-command-api (#3594) on 2022-03-03
  • Disabled the default features for the zip crate.
    • 5293445f refactor(core): disable default features for the zip crate (#3624) on 2022-03-06
  • The cmd field is no longer required on the shell scope for sidecars.
    • 9b3b163b feat(core): simplify scope definition for sidecars (#3574) on 2022-03-02
  • Fixes a regression on the unlisten command.
    • 76c791bd fix(core): regression on the unlisten function (#3623) on 2022-03-06
  • Run AppHandle cleanup code before restarting the application when a new update is installed.
    • fce7d3bb feat(core): run app cleanup code before updater restart, closes #3605 (#3616) on 2022-03-04
  • Added a WindowBuilder type.
    • 141133a4 feat(core): add WindowBuilder type (#3598) on 2022-03-04
  • Added WindowBuilder::on_web_resource_request, which allows customizing the tauri custom protocol response.

[1.0.0-rc.3]

  • tauri::plugin::Builder closures are no longer required to implement Sync.
    • fb7ee2c9 drop Sync req from setup and setup_with_config (#3471) on 2022-02-16
    • b8e4d651 fix(core): drop all plugin builder Sync requirements (#3490) on 2022-02-17
  • Added context to the file system endpoint errors.
    • 06053833 feat(core): add context to the filesystem APIs errors, closes #3457 (#3480) on 2022-02-16
  • Changed the default value for tauri > bundle > macOS > minimumSystemVersion to 10.13.
    • fce344b9 feat(core): set default value for minimum_system_version to 10.13 (#3497) on 2022-02-17

[1.0.0-rc.2]

  • Ease the requirements for plugin hooks. setup and setup_with_config can now be FnOnce and on_webview_ready, on_event and on_page_load can be FnMut.
  • Fixes an issue with the updater when replacing the {{target}} and {{current_version}} variables due to percent-encoding on the Url that is parsed from the configuration.

[1.0.0-rc.1]

  • Change default value for the freezePrototype configuration to false.

[1.0.0-rc.0]

  • The dialog allowlist now includes flags for the message, ask and confirm APIs.
    • d660cab3 feat: enhance allowlist configuration [TRI-027] (#11) on 2022-01-09
    • Breaking change: Renamed tauri::Event to tauri::RunEvent
  • Exported tauri::Event and tauri::EventHandler so you can define a function and pass it to Window::listen
  • 15358b18 Expose event interface. fixes #2733 (#3321) on 2022-02-04
  • The tauri::api modules http, notification, dialog, and process::Command APIs are now hidden behind a feature flag, http-api, notification, dialog and command, respectively.
    • 6feb5a0c refactor(core): api feature flags, documentation (#26) on 2022-01-09
  • Add title option to file open/save dialogs.
    • e1d6a6e6 Create api-file-dialog-title.md (#3235) on 2022-01-16
    • 62c7a8ad chore(covector): prepare for rc release (#3376) on 2022-02-10
  • Added any_thread() to the tauri::Builder to run applications on any thread (only exposed on Linux and Windows).
    • af44bf81 feat(core): allow app run on any thread on Linux & Windows, closes #3172 (#3353) on 2022-02-07
  • Enable CORS on the asset protocol.
    • d28ac8aa fix(core): enable CORS on the asset protocol, closes #2965 (#2974) on 2021-12-09
  • The asset:// custom protocol is only defined when either the api-all, protocol-all or protocol-asset feature flags are enabled. These feature flags are accessible with the tauri.conf.json allowlist.
    • 7920ff14 feat: scope the fs API and the asset protocol [TRI-026] [TRI-010] [TRI-011] (#10) on 2022-01-09
  • Expose the asset_resolver API on the App and AppHandle structs.
    • 7c6c7adc feat(core): add asset_resolver API (#2879) on 2021-11-12
  • Breaking change: Refactored the types returned from the async_runtime module.
    • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
  • Added tauri::async_runtime::set method, allowing to share your tokio runtime with Tauri.
    • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
  • Added tauri::async_runtime::spawn_blocking API.
    • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
  • The callback and error invoke fields, along with other transformCallback usages, are now validated to be numeric.
    • a48b8b18 feat(core): validate callbacks and event names [TRI-038] [TRI-020] (#21) on 2022-01-09
  • Change Error::ParseCliArguments(clap::Error) to Error::ParseCliArguments(String) because clap::Error is not Send.
  • The api::process::Command APIs are now hidden behind the command feature flag.
    • eed01728 feat(core): add shell > sidecar allowlist and process feature flag [TRI-037] (#18) on 2021-10-24
  • Add tauri::api::path::log_dir function to access the suggested log directory path.
  • The process, path and updater APIs now takes a tauri::Env argument, 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() and normalize() from the path module, won't throw errors if the path doesn't exist, which matches NodeJS behavior.
    • fe381a0b fix: join no longer cares if path doesn't exist, closes #2499 (#2548) on 2021-09-21
  • Breaking change: Return Window on App and AppHandle's create_window function.
    • e15a8af8 refactor(core): return Window on create_window API (#3211) on 2022-01-13
    • 62c7a8ad chore(covector): prepare for rc release (#3376) on 2022-02-10
  • Apply nonce to script and style tags and set them on the CSP (script-src and style-src fetch directives).
    • cf54dcf9 feat: improve CSP security with nonces and hashes, add devCsp [TRI-004] (#8) on 2022-01-09
  • The path returned from tauri::api::process::current_binary is now cached when loading the binary.
    • 7c3db7a3 cache current binary path much sooner (#45) on 2022-02-01
  • Added an API to use a custom invoke system to receive and respond to commands (Builder#invoke_system).
    • 15164d93 feat(core): allow defining a custom invoke system (#2899) on 2021-11-16
  • Inject configured CSP on data: URLs.
    • 8259cd64 feat(core): inject CSP on data URLs [TRI-049] (#16) on 2022-01-09
  • Emit tauri://* events to Rust listeners.
    • 4c4ab1eb fix(core): trigger tauri://* events to Rust listeners, closes #2901 (#2902) on 2021-11-16
  • Emit tauri://window-created event for windows created on the backend.
    • 1dbd887a fix(core): emit tauri://window-created event for windows created on Rust (#3299) on 2022-02-04
  • Enable non-session cookie persistence on Linux.
    • d7c02a30 feat(core): persist non-session cookies on Linux (#3052) on 2021-12-09
  • Expose tauri::api::ipc::{serialize_js_with, serialize_js} functions.
    • 5a94200f feat(core): expose functions to serialize serde::Serialize values to JS (#3354) on 2022-02-07
  • Resolve asset protocol HTTP request instead of panicking if the file does not exist or cannot be read.
    • 03fc92c8 fix(core): resolve request instead of panicking on asset protocol (#3347) on 2022-02-06
  • Avoid async_runtime::block_on panics when used along another tokio runtime.
    • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
  • Prevent window closing if tauri://close-requested is listened on the JS layer. Users must call appWindow.close() manually when listening to that event.
    • 74dff536 fix(core): emit tauri://close-requested to JS, closes #2996 (#3041) on 2021-12-09
  • Fixes a deadlock when creating a window from a menu event handler.
    • 9c82006b fix(core): deadlock when creating window from menu handler, closes #3110 (#3126) on 2021-12-28
  • Fixes the dialog defaultPath usage on Linux.
  • Fixes WindowEvent::Focus and WindowEvent::Blur events not firing.
    • 3b33d67a fix: re-adding focus/blur events for linux and macos (fix #2485) (#2489) on 2021-08-24
  • Fixes tauri://focus and tauri://blur events not firing.
    • 3b33d67a fix: re-adding focus/blur events for linux and macos (fix #2485) (#2489) on 2021-08-24
  • Use webview's inner_size instead of window's value to get the correct size on macOS.
  • Fixes resource directory resolution on Linux.
    • 1a28904b fix(core): resource path resolution on Linux, closes #2493 on 2021-08-22
  • Fixes the menu id mapping not reflecting the current window.
    • ac37b56e fix(core): menu id map not reflecting the current window menu (#2726) on 2021-10-08
  • Manager::once_global and Window::once allow FnOnce callbacks.
    • d5400a3d once_global and once accept FnOnce callbacks (#3383) on 2022-02-10
  • Properly check if document is loaded before invoking commands.
    • 000d126e fix(core): properly check if document is loaded, closes #2716 (#2900) on 2021-11-16
  • Initialize system tray before windows so tray_handle can be accessed on command handlers.
    • dbe0d21b fix(core): initialize system tray before app windows on 2021-08-31
  • Reimplement remove_system_tray on Windows to drop the SystemTray to run its cleanup code.
    • a03b8554 fix(core): tray not closing on Windows (#3351) on 2022-02-07
  • Immediately listen to tauri://window-created event to catch it before the application triggers it.
    • 878b8b9a fix(core): immediately listen to window-created, closes #3297 (#3298) on 2022-02-04
  • The tauri::Window#emit function now correctly sends the event to all windows that has a registered listener. Breaking change: Window#emit_and_trigger and Window#emit now requires the payload to be cloneable.
  • Allow using a fixed version for the Webview2 runtime via the tauri > bundle > windows > webviewFixedRuntimePath config option.
    • 85df94f2 feat(core): config for fixed webview2 runtime version path (#27) on 2021-11-02
  • The updater pubkey is now a required field for security reasons. Sign your updates with the tauri signer command.
    • d95cc831 feat: enforce updater public key [TRI-015] (#42) on 2022-01-09
  • tauri::api::HttpRequestBuilder::new now returns a Result to validate the url.
    • 0ad1c651 feat(core): add http allowlist scope [TRI-008] (#24) on 2021-10-29
  • Added the isolation pattern.
  • Added abort method to tauri::async_runtime::JoinHandle.
  • Adds support for using JSON5 format for the tauri.conf.json file, along with also supporting the .json5 extension.

Here is the logic flow that determines if JSON or JSON5 will be used to parse the config:

  1. Check if tauri.conf.json exists a. Parse it with serde_json b. Parse it with json5 if serde_json fails c. Return original serde_json error if all above steps failed
  2. Check if tauri.conf.json5 exists a. Parse it with json5 b. Return error if all above steps failed
  3. 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 via stopImmediatePropagation().
    • 10e3190f fix(core): do not use capture on _blank link event handler, closes #2791 (#3349) on 2022-02-07
  • The run_return API is now available on Linux.
    • 8483fde9 feat(core): expose run_return on Linux (#3352) on 2022-02-07
  • Allow window, global shortcut and clipboard APIs to be called on the main thread.
    • 2812c446 feat(core): window, shortcut and clipboard API calls on main thread (#2659) on 2021-09-26
    • d24fd8d1 feat(tauri-runtime-wry): allow window creation and closing on the main thread (#2668) on 2021-09-27
  • Add Menu::with_items constructor, taking an iterator of MenuEntry.
  • The updater now expects signatures created with the latest CLI release.
  • Change event loop callbacks definition to allow callers to move in mutable values.
    • bdbf905e Transformed event-loop callback to FnMut to allow mutable values (#2667) on 2021-09-27
  • Fixes Notification.requestPermission() deadlock.
    • 48f3768c fix(core): Notification.requestPermission() deadlock regression on 2021-08-24
  • Added Window#open_devtools API.
  • Add a plugin::Builder struct to make plugin creation more convenient.
  • Added on_event on the Plugin trait, which allows a plugin to react to the event loop.
    • cc2f39a2 feat(core): add on_event hook on the Plugin trait (#2656) on 2021-09-26
  • Prevent path traversal on the file system APIs.
    • 4d89f60d refactor(core): prevent path traversal [TRI-012] (#35) on 2021-12-06
  • Breaking change: Add macos-private-api feature flag, enabled via tauri.conf.json > tauri > macOSPrivateApi.
    • 6ac21b3c feat: add private api feature flag (#7) on 2022-01-09
  • Add raw_headers to tauri::api::http::ResponseData.
  • Implement raw_window_handle::RawWindowHandle for tauri::Window on Windows and macOS. The tauri::api::dialog::window_parent function was removed since now you can use the window directly.
    • e98c1af4 feat(core): expose message dialog APIs, fix window.confirm, implement HasRawWindowHandle for Window, closes #2535 (#2700) on 2021-10-02
  • Refactor create_tao_window API to return Weak<Window> instead of Arc<Window>.
    • c1494b35 refactor: return Weak on create_tao_window on 2021-08-31
  • Added the tauri::api::dialog::blocking module.
    • 4818531a refactor(core): add blocking dialog APIs, improve docs, closes #3255 (#3270) on 2022-02-05
  • The notification endpoint now checks for the permission flag and requests if the value is not set.
    • 239bba56 refactor(core): check notification permission on the Rust endpoint [TRI-017] (#23) on 2022-01-09
  • Breaking change: The WindowEvent::CloseRequested variant now includes label and signal_tx fields to allow preventing closing the window.
    • 74dff536 fix(core): emit tauri://close-requested to JS, closes #2996 (#3041) on 2021-12-09
  • Breaking change: Move __currentWindow and __windows values from window.__TAURI__ to window.__TAURI_METADATA__.
    • f5109e0c fix(api): window label null instead of actual value, closes #3295 (#3332) on 2022-02-04
  • Remove the BaseDirectory::Current enum variant for security reasons.
    • 696dca58 refactor(core): remove BaseDirectory::Current variant on 2022-01-26
  • Breaking change: Remove default webview window when tauri.conf.json > tauri > windows is not set.
    • c119060e refactor(core): empty default value for config > tauri > windows (#3380) on 2022-02-10
  • Breaking change: Renamed the rpc module to ipc.
    • 3420aa50 refactor: IPC handler [TRI-019] (#9) on 2022-01-09
  • Expose run_on_main_thread APIs on Window and AppHandle.
    • 53fdfe52 feat(core): expose run_on_main_thread API (#2711) on 2021-10-04
  • The minimum Rust version is now 1.56.
    • a9dfc015 feat: update to edition 2021 and set minimum rust to 1.56 (#2789) on 2021-10-22
  • The minimum Rust version is now 1.57.
  • Scopes the filesystem APIs from the webview access using tauri.conf.json > tauri > allowlist > fs > scope. Scopes the asset protocol access using tauri.conf.json > tauri > allowlist > protocol > assetScope. Scopes the http APIs from the webview access using tauri.conf.json > tauri > allowlist > http > scope. Scopes the shell execute API from the webview access using tauri.conf.json > tauri > allowlist > shell > scope. Additionally, check the tauri.conf.json > tauri > bundle > externalBin to prevent access to unknown sidecars.
    • 7920ff14 feat: scope the fs API and the asset protocol [TRI-026] [TRI-010] [TRI-011] (#10) on 2022-01-09
    • 0ad1c651 feat(core): add http allowlist scope [TRI-008] (#24) on 2021-10-29
    • d4db95e7 feat(core): shell execute API scope [TRI-002] (#36) on 2021-12-01
  • Builder#setup closure type changed from Fn to FnOnce.
    • 3f3599b9 refactor(core): change setup closure type to FnOnce, closes #3061 (#3065) on 2021-12-27
  • The tauri::api::shell::open's with argument is now an enum value instead of any string.
    • 63921fad refactor: change tauri::api::open with argument to an enum [TRI-022] (#19) on 2022-01-09
  • The shell allowlist now includes a sidecar flag, which enables the use of the shell API to execute sidecars.
    • eed01728 feat(core): add shell > sidecar allowlist and process feature flag [TRI-037] (#18) on 2021-10-24
  • Breaking change: The sidecar's target triple suffix is now removed at build time.
    • 3035e458 Remove target triple from sidecar bin paths, closes #3355 (#3356) on 2022-02-07
  • Fix streaming of small files using the asset protocol.
    • 151e629e fix(core): streaming of small files using asset://, closes #2854 (#3039) on 2021-12-09
  • Add set_menu API on tauri::SystemTrayHandle.
    • 0e4d12b5 fix: #2502 Expose set_menu from tao through the TrayHandle struct (#2532) on 2021-10-02
  • Adds unlisten function to the Window struct.
    • 3a59f5f7 Unlisten to an event on this window (#2664) on 2021-09-28
  • Force updater endpoint URL to use https on release builds.
    • c077f449 feat: force endpoint URL to use https on release [TRI-015] (#41) on 2022-01-09
  • Validate the std::env::current_exe return value if APPDIR or APPIMAGE environment variables are set.
    • 6fbd6dba feat(core): validate AppImage execution when env vars are set [TRI-041] (#17) on 2021-10-24
  • 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 _.
    • a48b8b18 feat(core): validate callbacks and event names [TRI-038] [TRI-020] (#21) on 2022-01-09
  • The window label is now validated and must be alphanumeric, resulting in a panic if it isn't.
    • 680554de feat: validate window label [TRI-021] (#13) on 2021-10-23
  • Allow tauri.conf.json > package > version to specify a path to a package.json file and pull the version from it.
    • 46f2eae8 feat: allow config's version to be a path to package.json, closes #2967 (#2971) on 2022-01-07
  • Added clipboard field on the WebviewAttributes struct, which must be set to true to enable clipboard access on the webview.
    • d42ccfb3 feat: add clipboard flag to WebviewAttributes [TRI-032] (#12) on 2021-10-23
  • Replace all of the winapi crate references with the windows crate, and replace webview2 and webview2-sys with webview2-com and webview2-com-sys built with the windows crate. This goes along with updates to the TAO and WRY next branches.
    • bb00d5bd Replace winapi with windows crate and use webview2-com instead of webview2 (#2615) on 2021-09-24
  • Show Ok/Cancel buttons instead of Yes/No when executing window.confirm.
    • e98c1af4 feat(core): expose message dialog APIs, fix window.confirm, implement HasRawWindowHandle for Window, closes #2535 (#2700) on 2021-10-02
  • Update the windows crate to 0.25.0, which comes with pre-built libraries. WRY and Tao can both reference the same types directly from the windows crate instead of sharing bindings in webview2-com-sys.
    • 34be6cf3 Update webview2-com and windows crates (#2875) on 2021-11-11

[1.0.0-beta.8]

  • Fix missing asset protocol path.Now the protocol is https://asset.localhost/path/to/file on Windows. Lunix and macOS is still asset://path/to/file.
    • 994b5325 fix: missing asset protocol path (#2484) on 2021-08-23
  • Breaking change: Removed register_uri_scheme_protocol from the WebviewAttributes struct and renamed register_global_uri_scheme_protocol to register_uri_scheme_protocol on the Builder struct, which now takes a Fn(&AppHandle, &http::Request) -> http::Response closure.
  • Migrate to latest custom protocol allowing Partial content streaming and Header parsing.

[1.0.0-beta.7]

  • Cleanup application on AppHandle#exit.
  • Fix raw-window-handle dependency declaration.

[1.0.0-beta.6]

  • Breaking change: The tauri::async_runtime::spawn function now returns tauri::async_runtime::JoinHandle<T>.

    • 9aeb04fa feat(core): async_runtime handle API, spawn returns JoinHandle (#2399) on 2021-08-11
  • Breaking change: Added window_parent: Option<&Window> as first argument to the ask and message APIs on the tauri::api::dialog module.

    • c76f4b7d feat(core): set parent window on ask and message dialog APIs (#2454) on 2021-08-16
  • Allow the tauri::api::dialog APIs 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.

    • 2088cd0f refactor(core): handle dialog threading internally, closes #2223 (#2429) on 2021-08-14
    • 60b1e260 chore: adjust change file on 2021-08-16
  • Breaking change: The Plugin trait initialize method now takes an AppHandle reference instead of App.

    • c17532f7 refactor(core): change Plugin initialize signature, move register t… (#2347) on 2021-08-03
  • Breaking change: Remove menu feature flag since there's no package dependency need to be installed on any platform anymore.

  • Adds set_activation_policy API to the tauri::App struct (macOS only).

  • Add handle API to tauri::async_runtime.

    • 9aeb04fa feat(core): async_runtime handle API, spawn returns JoinHandle (#2399) on 2021-08-11
  • Assets will now fallback to <uri>/index.html before /index.html, allowing anchor links to work as expected.

    • d22da650 fix(core): fallback to {asset}/index.html before index.html, closes #2328 (#2329) on 2021-08-02
  • Fix data-tauri-drag-region double-click, will now respect resizable: false and won't maximize.

    • 1a510066 fix(core): data-tauri-drag-region didn't respect resizable, closes #2314 (#2316) on 2021-08-02
  • Fix Notification.requestPermission() throwing Unhandled Promise Rejection: TypeError: undefined is not a function (near '...window.__TAURI__.invoke...')

  • Fix blur/focus events being incorrect on Windows.

    • d832d575 fix(windows): use webview events on windows (#2277) on 2021-07-23
  • Move items which tauri::api re-exports from tauri-utils to individual module utils. Because these items has their own Error/Result types which are not related to api module at all.

    • 12642a1a doc: update doc in tauri-utils and tauri (#2435) on 2021-08-15
    • cd55d671 doc: update tauri documentations (#2446) on 2021-08-16
  • Allow registering a plugin through an AppHandle instance using the plugin method.

    • 5b7be813 feat(core): add plugin register API on the Manager trait (#2340) on 2021-08-02
    • c17532f7 refactor(core): change Plugin initialize signature, move register t… (#2347) on 2021-08-03
  • Embed Info.plist file contents on binary on dev.

    • 537ab1b6 feat(core): inject src-tauri/Info.plist file on dev and merge on bundle, closes #1570 #2338 (#2444) on 2021-08-15
  • Add ExitRequested event that allows preventing the app from exiting when all windows are closed, and an AppHandle.exit() function to exit the app manually.

    • 892c63a0 feat(#2287): Add ExitRequested event to let users prevent app from exiting (#2293) on 2021-08-09
  • Change App.create_window() and AppHandle.create_window() to accept an Into<String> type instead of String.

    • 8216cba1 App.create_window() to accept any Into<String> type (fix #2290) (#2291) on 2021-07-26
  • Fixes defaultPath option on dialog API not setting the file name if it doesn't exist on Linux.

    • 8b2cc261 fix(core): dialog's defaultPath behavior on Linux, closes #2232 (#2382) on 2021-08-10
  • Fix ES Module detection for default imports with relative paths or scoped packages and exporting of async functions.

    • b2b36cfe fix(core): fixes ES Module detection for default imports with relative paths or scoped packages (#2380) on 2021-08-10
    • fbf8caf5 fix(core): ESM detection when using export async function (#2425) on 2021-08-14
  • Fix listen calls receiving past events.

  • Fixes file drop events being swapped (file-drop-hover on drop and file-drop on hover).

    • c2b0fe1c fix(core): fix wrong file drop events (#2300) on 2021-07-31
  • Fixes app.listen_global not receiving events emitted in javascript.

    • a8c1de55 fix listen_global not listening to events with a window label (#2272) on 2021-07-23
  • Fixes minimum window height being used as maximum height.

    • e3f99165 fix(core) minHeight being used as maxHeight (#2247) on 2021-07-19
  • Fixes unlisten calls from JavaScript removing every registered event listener.

  • Use Url.join() when building webview URLs in WindowManager, to handle edge cases and leading/trailing slashes in paths and urls.

  • Fixes fs-all feature not requiring the base64 crate.

    • 9b32b939 fix(core): fs-all feature not including base64 crate, closes #2336 (#2368) on 2021-08-08
  • Update gtk and its related libraries to v0.14. This also remove requirements of clang as build dependency.

  • Use HeaderValue::from_bytes instead of HeaderValue::from_str and HeaderValue#to_bytes instead of HeaderValue#to_str to improve compatibility.

    • 1635798a feat(core): improve HeaderValue compatibility, closes #2162 (#2438) on 2021-08-15
  • Implement Debug on public API structs and enums.

    • fa9341ba feat(core): implement Debug on public API structs/enums, closes #2292 (#2387) on 2021-08-11
  • Adds Resumed and MainEventsCleared variants to the Event enum.

    • 6be3f433 feat(core): add Resumed and MainEventsCleared events, closes #2127 (#2439) on 2021-08-15
  • Panic when a dispatcher getter method (Window, GlobalShortcutHandle, ClipboardManager and MenuHandle APIs) is called on the main thread.

    • 50ffdc06 feat(core): panic when a dispatcher getter is used on the main thread (#2455) on 2021-08-16
  • Use percent_encoding::percent_decode on the asset custom protocol URL before reading the file.

    • 9acd8301 fix(core): percent decode asset protocol URL (#2427) on 2021-08-14
  • Keep original value on config > package > productName on Linux (previously converted to kebab-case).

    • 3f039cb8 fix: keep original productName for .desktop Name field, closes #2295 (#2384) on 2021-08-10
  • Inject the invoke key on regular <script></script> tags.

    • d0142e87 fix(core): invoke key injection on regular JS scripts, closes #2342 (#2344) on 2021-08-03
  • Remove salt-related APIs (no longer needed after the __TAURI_INVOKE_KEY__ implementation).

    • e2a0704c refactor(core): remove salt APIs (#2426) on 2021-08-14
  • Update minimum Rust version to 1.54.0.

  • Run the setup callback after preparing the system tray.

    • 1792c455 fix(core): run setup after preparing system tray (#2312) on 2021-07-28
  • Fixes a consistency issue on the order of tauri::process::Command emitted events.

    • 737da872 fix(core): random shell command output order, closes #2184 (#2376) on 2021-08-09
  • Force data directory even on non-local window.

    • 70a19414 fix(core): Force data_directory on Windows (#2288) on 2021-07-23
  • Allow creation of empty Window with create_tao_window() and management with send_tao_window_event() on the AppHandler.

    • 88080855 feat(window): Allow creation of Window without wry (#2321) on 2021-07-29
    • 15566cfd feat(core): add API to send wry window message to the event loop (#2339) on 2021-08-02
  • Make ClipboardManager and GlobalShortcutManager public as they are exposed in the AppHandle.

    • 6e0dbf63 fix(core): Expose ClipboardManager and GlobalShortcutManager (#2263) on 2021-08-03
  • 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::Ready on the run() 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_task with a boolean and 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_state API to the Manager trait.

    • 84a0e04c feat(core): try_state API on the Manager trait (#2341) on 2021-08-02

[1.0.0-beta.5]

  • Allow preventing window close when the user requests it.
    • 8157a68a feat(core): allow listening to event loop events & prevent window close (#2131) on 2021-07-06
  • Add App#run method with callback argument (event loop event handler).
    • 8157a68a feat(core): allow listening to event loop events & prevent window close (#2131) on 2021-07-06
  • Fixes data-tauri-drag-region not firing its events.
    • 578610a2 fix(core): fix drag-region not sending its events correctly (#2196) on 2021-07-12
  • Fix macOS EXC_BAD_ACCESS panic when app is code-signed.
    • 456a94f6 fix(macOS): updater EXC_BAD_ACCESS (#2181) on 2021-07-12
  • Fixes SVG loading on custom protocol.
  • Expose gtk_window getter.
  • Inject invoke key on script tags with type="module".
    • f03eea9c feat(core): inject invoke key on <script type="module"> (#2120) on 2021-06-29
  • Fix macOS high CPU usage.
  • Export MenuHandle and MenuEvent types on tauri::window.
    • acb88929 fix(core): export MenuHandle and MenuEvent (#2148) on 2021-07-03
  • Use glib context for linux updater to prevent GTK panic.
    • 3389bd81 fix(linux): use glib main context for the updater on linux (#2222) on 2021-07-16
  • Bump wry 0.11 and fix focus integration to make it compatible with tao 0.4.
  • Params has 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 parameter Params now use Runtime instead. If you use the wry feature, then types with a Runtime generic parameter should default to Wry, letting you omit the explicit type and let the compiler infer it instead.

tauri:

  • See Params note
  • If you were using Params inside a function parameter or definition, all references to it have been replaced with a simple runtime that defaults to Wry. If you are not using a custom runtime, just remove Params from 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 an Into<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_runtime proc macro to allow us to give item definitions a custom runtime only when the specified feature is enabled.

tauri-runtime:

  • See Params note
  • 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 MenuId generic now use the underlying MenuId type without a generic.
  • Runtime, RuntimeHandle, and Dispatch have no more generic parameter on create_window(...) and instead use the Runtime type directly
  • Runtime::system_tray has no more MenuId generic and uses the string based SystemTray type directly.
  • (internal) CustomMenuItem::id_value() is now hashed on creation and exposed as the id field with type MenuHash.

tauri-runtime-wry:

  • See Params note
  • update menu and runtime related types to the ones changed in tauri-runtime.

tauri-utils:

  • Assets::get signature has changed to take a &AssetKey instead of impl Into<AssetKey> to become trait object safe.
  • fd8fab50 refactor(core): remove Params and replace with strings (#2191) on 2021-07-15

[1.0.0-beta.4]

  • Double clicking a data-tauri-drag-region element will toggle the window maximized state.
    • 8b7ac1ad feat: double-click tauri-drag-region to maximize, closes #1839 (#2106) on 2021-06-29
  • Fixes asset protocol crashing application.
    • 99d96084 fix(core): custom protocol regression (#2115) on 2021-06-28

[1.0.0-beta.3]

  • Fixes api::process::Command events not firing consistently.
    • 8c13344f fix(core): command events not firing consistently (#2082) on 2021-06-27
  • Detect ESM scripts and inject the invoke key directly instead of using an IIFE.
    • 7765c7fa fix(core): invoke key injection on ES module, improve performance (#2094) on 2021-06-27
  • Improve invoke key code injection performance time rewriting code at compile time.
    • 7765c7fa fix(core): invoke key injection on ES module, improve performance (#2094) on 2021-06-27
  • Enforce uniqueness of window label.
  • Window is now Send + Sync on Windows.
    • fe32afcc fix(core): Window must be Send + Sync on Windows, closes #2078 (#2093) on 2021-06-27

[1.0.0-beta.2]

  • Remove anonymous lifetimes on examples.

    • c1f8e113 chore: remove unnecessary anonymous lifetimes (#1829) on 2021-05-14
  • Moves shell, dialog::FileDialogBuilder and process::Command APIs behind their allowlist feature flags.

    • aab3e1f1 refactor(core): move api modules behind allowlist feature flags (#1864) on 2021-05-19
  • Adds create_window API to the AppHandle struct.

    • 95d518af feat(core): expose AppHandle, add create_window API (#1855) on 2021-05-18
  • Adds a handle function to the App struct, which returns a Send handle to the app instance.

    • 95d518af feat(core): expose AppHandle, add create_window API (#1855) on 2021-05-18
  • Use attohttpc on the HTTP API by default for bundle size optimization. reqwest is implemented behind the reqwest-client feature flag.

    • 17c7c439 refactor(core): use attohttpc by default (#1861) on 2021-05-19
  • Kill child processes spawned with tauri::api::process::Command on tauri::App drop. Can be skipped with tauri::Builder#skip_cleanup_on_drop.

    • 4bdc4066 feat(core): kill sidecar child processes on App drop, closes #1896 (#1932) on 2021-06-01
  • Adds clipboard APIs (write and read text).

    • 285bf64b feat(core): add clipboard writeText and readText APIs (#2035) on 2021-06-21
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Allow accessing an AppHandle instance on a command through dependency injection.

    • 59784c7e feat(core): implement CommandArg for AppHandle (#2037) on 2021-06-21
  • Fixes child processes messages not arriving until the subprocess is terminated.

  • Adds config and package_info getters to the App and AppHandle structs.

    • 70fc87a7 feat(core): add config and package_info getters on App and AppHandle (#2016) on 2021-06-20
  • Expose mutable getters for the rest of the public Context getters.

  • 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_attention API to the Window struct.

  • Adds show, hide, is_visible and toggle APIs to the MenuHandle.

    • 954460c5 feat(core): MenuHandle show, hide, is_visible and toggle APIs (#1958) on 2021-06-15
  • Allow dev_path and dist_dir to be an array of root files and directories to embed.

    • 6ec54c53 feat(core): allow dev_path, dist_dir as array of paths, fixes #1897 (#1926) on 2021-05-31
  • Validate tauri.conf.json > build > devPath and tauri.conf.json > build > distDir values.

    • e97846aa feat(core): validate devPath and distDir values (#1848) on 2021-05-17
  • Set the Tauri window as parent for dialogs.

    • abf78c58 fix(core): set parent window handle on dialogs, closes #1876 (#1889) on 2021-05-21
  • Fallback to index.html on asset loading so router with history mode works.

  • Fixes custom protocol asset loader not decoding the percent-encoded path.

    • c021968e fix(core): asset loading not decoding percent-encoded path, closes #1879 (#1938) on 2021-06-01
  • 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.

    • 49fb3b72 fix(core): build without dialog Cargo features (#1973) on 2021-06-09
  • 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 > fileDropEnabled flag or the WebviewAttributes#disable_file_drop_handler method.

    • 9cd10df4 feat(core): allow disabling file drop handler, closes #2014 (#2030) on 2021-06-21
  • Fixes the HTTP API binary response serialization.

    • 47f75584 fix(core): resolve HTTP API on non-ok status code, fix binary response, closes #2046 (#2053) on 2021-06-23
  • The http APIs now resolve the returned promise when the API call finishes with an error status code.

    • 47f75584 fix(core): resolve HTTP API on non-ok status code, fix binary response, closes #2046 (#2053) on 2021-06-23
  • Run the notification.show() method on a dedicated async task to prevent a panic on Windows.

    • 86d0aaa0 fix(core): notification panic on Windows, closes #917 (#2011) on 2021-06-19
  • Fixes HTTP API headers being overwritten when using the reqwest client.

    • 1006c1cf fix(core): HTTP headers being overwritten by reqwest, closes #2032 (#2036) on 2021-06-21
  • Remove closed window from the window.__TAURI__.__windows array, used by the window.getAll API from @tauri-apps/api.

    • ebaa33cb fix(core): remove closed window from window.__TAURI__.__windows (#2057) on 2021-06-23
  • Panic on window getters usage on the main thread when the event loop is not running and document it.

  • Adds focus API to the WindowBuilder.

    • 5f351622 feat(core): add focus API to the WindowBuilder and WindowOptions, #1737 on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Breaking change: The global shortcut API is now managed by tao so it cannot be accessed globally, the manager is now exposed on the App and AppHandle structs.

    • 3280c4aa refactor(core): global shortcut is now provided by tao (#2031) on 2021-06-21
  • Hide phf crate export (not public API).

  • (internal): allow wry dependency to be optional again while keeping default args. code that wishes to expose a struct with a default arg should use the crate::manager::default_args! macro to declare the struct, so that it can automatically feature-gate DefaultArgs behind using wry.

    • 3d8dcbbf fix(core): allow wry to be an optional dep again (fix #1841) (#1854) on 2021-05-17
  • Adds is_decorated getter on Window.

    • f58a2114 feat(core): add is_decorated Window getter on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Adds is_resizable getter on Window.

    • 1e8af280 feat(core): add is_resizable Window getter on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Adds is_visible getter on Window.

    • 36506c96 feat(core): add is_visible API on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Read tauri.conf.json > tauri > bundle > icons and use the first .png icon as window icon on Linux. Defaults to icon/icon.png if a PNG icon is not configured.

  • Adds accelerator method to the CustomMenuItem struct to define a keyboard shortcut for the menu item.

    • 034c2601 feat(core): add accelerator method to CustomMenuItem (#2043) on 2021-06-22
  • Breaking change: The menu API was not designed to have all the new features: submenus, item updates, disabled state... so we broke it before going to stable.

    • f7e9fe8f refactor(core): new system tray and window menu APIs, closes #1898 (#1944) on 2021-06-04
  • Adds a PathResolver struct to simplify the usage of the tauri::api::path::{app_dir, resource_dir} APIs, accessible through the App and AppHandle path_resolver methods.

    • 5ca462f6 feat(core): add path resolver API to the App and AppHandle structs (#2015) on 2021-06-19
  • Removes image dependency. For now only .ico icons on Windows are supported, and we'll implement other types on demand to optimize bundle size.

    • 1be37a3f refactor(core): remove image dependency (#1859) on 2021-05-18
  • Remove window object from the Manager internal HashMap on close. This fixes the behavior of using [App|AppHandle|Window]#get_window after the window is closed (now correctly returns None).

    • 08c161c5 fix(core): remove window from HashMap on close (#2024) on 2021-06-20
  • 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_iteration API to the App and return the app instance on the build method of the Builder. The run_iteration method runs the window event loop step by step, allowing Tauri to be run along other applications.

    • 8c0d0739 feat(core): add run_iteration, parent_window and owner_window APIs, closes #1872 (#1874) on 2021-05-21
  • The run_on_main_thread API now uses WRY's UserEvent, so it wakes the event loop.

    • 9bf82f0d fix(core): run_on_main_thread now wakes the event loop (#1949) on 2021-06-04
  • Adds set_focus API on Window.

    • bb6992f8 feat(core): add set_focus window API, fixes #1737 on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Adds set_skip_taskbar API on Window.

    • e06aa277 feat(core): add set_skip_taskbar API on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Adds skip_taskbar API to the WindowBuilder.

    • 5525b03a feat(core): add skip_taskbar API to the WindowBuilder/WindowOptions on 2021-05-30
    • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
  • Breaking change: The system_tray and on_system_tray_event APIs were not designed to have all the new features: submenus, item updates, click events, positioning... so we broke it before going to stable.

    • f7e9fe8f refactor(core): new system tray and window menu APIs, closes #1898 (#1944) on 2021-06-04
  • Fix loading url containing URI fragment

  • Adds Window#center and WindowBuilder#center APIs.

  • Adds window native handle getter (HWND on Windows).

    • abf78c58 fix(core): set parent window handle on dialogs, closes #1876 (#1889) on 2021-05-21

[1.0.0-beta.1]

  • Adds a mutable config getter on the Context struct.
    • 144d6b9 feat(core): add mutable config getter on the Context struct (#1803) on 2021-05-12

[1.0.0-beta.0]

  • Breaking: api::path::resolve_path() and api::path::app_dir() now takes the config as first argument and the PackageInfo as second argument. Breaking: api::path::app_dir() now resolves to ${configDir}/${config.tauri.bundle.identifier}.

    • 428d50a refactor(core): use bundle identifier on app dir, closes #1693 (#1703) on 2021-05-04
    • 7bb7dda refactor(core): resolve resource_dir using the package info (#1762) on 2021-05-10
  • Adds manage API to the Builder struct, which manages app state.

  • Breaking: The assets field on the tauri::Context struct is now a Arc<impl Assets>.

    • 5110c70 feat(core): allow users to access the Assets instance (#1691) on 2021-05-03
  • Only commands with a async fn are executed on a separate task. #[command] fn command_name runs on the main thread.

    • bb8dafb feat(core): #[command] return with autoref specialization workaround fix #1672 (#1734) on 2021-05-09
  • Renamed the command API module to process.

    • b0bb796 refactor: rename command mod to process, move restart_application (#1667) on 2021-04-30
  • Adds options argument to the shell command API (env and cwd configuration).

    • 721e98f feat(core): add env, cwd to the command API, closes #1634 (#1635) on 2021-04-28
  • Improves support for commands returning Result.

    • bb8dafb feat(core): #[command] return with autoref specialization workaround fix #1672 (#1734) on 2021-05-09
  • Adds status and output APIs to the tauri::api::process::Command struct.

    • d92fde7 feat(core): add output and status APIs to the Command struct (#1668) on 2021-05-02
  • The create_window API callback now takes two arguments: the WindowBuilder and the WebviewAttributes and must return a tuple containing both values.

  • Reintroduce csp injection, configured on tauri.conf.json > tauri > security > csp.

    • 6132f3f feat(core): reintroduce CSP injection (#1704) on 2021-05-04
  • Adds the default types used with Builder::default() to items that expose Params in their type. This allows you to skip specifying a generic parameter to types like Window<P> if you use the default type.

    • 27a7810 feat(core): add default Args to all types exposing Params (#1777) on 2021-05-11
  • Change draggable region element detection from drag-region class to data-tauri-drag-region attribute.

    • 4f1e87f refactor(core): change drag element detection to data attr, fixes #1656 (#1659) on 2021-04-29
  • Emit tauri://resize, tauri://move, tauri://close-requested, tauri://destroyed, tauri://focus, tauri://blur and tauri://scale-change events to the window.

  • The event emit function payload type is now impl Serialize instead of Option<impl Serialize>.

    • 4687538 refactor(core): drop Option payload type on event::emit (#1760) on 2021-05-09
  • Update tauri-hotkey to v0.1.2, fixing a compilation issue on 32-bit platforms.

    • 92a01a7 chore(deps): bump tauri-hotkey to 0.1.2 (#1701) on 2021-05-04
  • Implemented window menus APIs.

  • Added the `#[non_exhaustive] attribute where appropriate.

    • e087f0f feat: add #[non_exhaustive] attribute (#1725) on 2021-05-05
  • Notification.requestPermission() now returns "denied" when not allowlisted. IsNotificationPermissionGranted returns false when not allowlisted.

    • 8941790 fix(core): notification permission check when !allowlisted, closes #1666 (#1677) on 2021-05-02
  • Refactored the Plugin trait initialize and extend_api signatures. initialize now takes the App as first argument, and extend_api takes an Invoke instead of InvokeMessage. This adds support to managed state on plugins.

    • 8b6f3de feat(core): add state management, closes #1655 (#1665) on 2021-05-02
    • 1d6f418 refactor(core): merge invoke items into single struct, allow ? (#1683) on 2021-05-02
  • window.print() now works on all platforms.

    • 56e74cc feat(core): ensure window.print()works on macOS (#1738) on 2021-05-07
  • Breaking: Context fields are now private, and is expected to be created through Context::new(...). All fields previously available through Context are now public methods.

    • 5542359 refactor(core): Context fields now private, Icon used on all platforms (#1774) on 2021-05-11
  • Settings is now serialized using bincode.

    • 455c550 refactor(core): Settings serialization using bincode (#1758) on 2021-05-09
  • The window management API was refactored: removed setX, setY, setWidth, setHeight APIs, renamed resize to setSize and the size and position APIs now allow defining both logical and physical values.

    • 6bfac86 refactor(core): add window getters, physical & logical sizes/positions (#1723) on 2021-05-05
  • Removed the tcp module from tauri::api.

    • e087f0f feat: add #[non_exhaustive] attribute (#1725) on 2021-05-05
  • Removes the with_window attribute on the command macro. Tauri now infers it using the CommandArg trait.

    • 8b6f3de feat(core): add state management, closes #1655 (#1665) on 2021-05-02
    • 1d6f418 refactor(core): merge invoke items into single struct, allow ? (#1683) on 2021-05-02
  • Move restart_application API from app module to process module.

    • b0bb796 refactor: rename command mod to process, move restart_application (#1667) on 2021-04-30
  • tauri-runtime crate initial release.

    • 665ec1d refactor: move runtime to tauri-runtime crate (#1751) on 2021-05-09
    • 45a7a11 feat(core): add tauri-wry crate (#1756) on 2021-05-09
  • The setup Error type must be Send.

    • e087f0f feat: add #[non_exhaustive] attribute (#1725) on 2021-05-05
  • Simplify usage of app event and window label types. The following functions now accept references the Tag can be borrowed as. This means an &str can now be accepted for functions like Window::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" because Borrow<str> is implemented for the default event type String.

  • Breaking: Window::emit now accepts Borrow for the event.

  • Breaking: Window::emit_others now accepts Borrow for the event

  • Breaking: Window::trigger now accepts Borrow for the event.

  • Breaking: Manager::emit_all now accepts Borrow for the event.

  • Breaking: Manager::emit_to now accepts Borrow for both the event and window label.

  • Breaking: Manager::trigger_global now accepts Borrow for the event.

  • Breaking: Manager::get_window now accepts Borrow for the window label.

  • (internal): trait tauri::runtime::tag::TagRef helper 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 like P::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-wry initial release.

    • 45a7a11 feat(core): add tauri-wry crate (#1756) on 2021-05-09
  • Adds system tray support.

  • Rename Attributes to WindowBuilder.

  • The Window#create_window API now has the same signature as App#create_window.

    • dbd9b07 refactor(core): create_window API signature on the Window struct (#1746) on 2021-05-08
  • Adds on_window_event API to the Window struct.

  • Adds window getters.

    • 6bfac86 refactor(core): add window getters, physical & logical sizes/positions (#1723) on 2021-05-05
  • Update wry to v0.9.

[1.0.0-beta-rc.4]

  • Update tauri-macros and tauri-utils to 1.0.0-beta-rc.1.

[1.0.0-beta-rc.3]

  • tauri::error::CreateWebview now has the error string message attached.
    • 7471e34 feat(core): add error message on error::CreateWebview (#1602) on 2021-04-23
  • If the dialog defaultPath is a file, use it as starting file path.
    • aa7e273 feat: use rfd::FileDialog#set_file_name if default_path is a file (#1598) on 2021-04-23
  • Validate dialog option defaultPath - it must exists.
    • cfa74eb feat(core): validate dialog default_path (it must exist) (#1599) on 2021-04-23
  • Expose async_runtime module.
    • d3fdeb4 feat(core): expose async_runtime module (#1576) on 2021-04-21
  • Expose PageLoadPayload struct.
    • 5e65b76 fix(core): expose PageLoadPayload struct (#1590) on 2021-04-22
  • Fixes the Message command name value on plugin invoke handler.
    • 422dd5e fix(core): command name on plugin invoke handler (#1577) on 2021-04-21
  • Allow window.__TAURI__.invoke to be moved to another variable.
    • be65f04 fix(core): make window.TAURI.invoke context free, fixes #1547 (#1565) on 2021-04-21
  • Make sure custom protocol is treated as secure content on macOS.
    • 5909c1e Make sure custom protocol is handled as secure context on macOS (#1551) on 2021-04-22
  • Fixes macOS shortcut modifiers keycodes.
  • Adds APIs to determine global and webview-specific URI scheme handlers.
    • 938fb62 feat(core): expose custom protocol handler APIs (#1553) on 2021-04-21
    • a868cb7 refactor(core): clear uri_scheme_protocol registration function names (#1617) on 2021-04-25
  • The package info APIs now checks the package object on tauri.conf.json.
    • 8fd1baf fix(core): pull package info from tauri.conf.json if set (#1581) on 2021-04-22
  • Change plugin trait initialization return type to std::result::Result<(), Box<dyn std::error::Error>>.
    • 508eddc refactor(core): plugin initialization return value (#1575) on 2021-04-21
  • Fixes sidecar Command API.
    • 99307d0 fix(core): sidecar command path (#1584) on 2021-04-22
  • Set LocalStorage and IndexedDB files path on Linux to $HOME/.local/${bundleIdentifier}.
    • 5f033db feat(core): use bundle identifier on user data path (#1580) on 2021-04-22
  • Use bundle identifier instead of Tauri for user data path on Windows.
    • 5f033db feat(core): use bundle identifier on user data path (#1580) on 2021-04-22

[1.0.0-beta-rc.2]

  • Prevent "once" events from being able to be called multiple times.

  • Window::trigger(/*...*/) is now properly pub instead of pub(crate).

  • Manager::once_global(/*...*/) now returns an EventHandler.

  • Window::once(/*...*/) now returns an EventHandler.

  • (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.

  • e447b8e allow event listeners to be nested (#1513) on 2021-04-15

[1.0.0-beta-rc.1]

  • Missing the files property in the package.json which mean that the dist directory was not published and used.
    • Bumped due to a bump in api.
    • b2569a7 fix(js-api): dist (#1498) on 2021-04-15

[1.0.0-beta-rc.0]

  • internal refactoring of Params to allow for easier usage without a private trait with only 1 implementor. ParamsPrivate -> ParamsBase ManagerPrivate -> ManagerBase (new) Args, crate only. Now implements Params/ParamsBase. App and Window use WindowManager directly
  • 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.
    • ea73325 refactor(core): all API are now promise based (#1239) on 2021-02-16
  • Rename macOS bundle settings from osx to macOS.
    • 080f639 refactor(bundler): specific settings on dedicated structs, update README (#1380) on 2021-03-25
  • The shell process spawning API was rewritten and now includes stream access.
    • 3713066 refactor(core): rewrite shell execute API, closes #1229 (#1408) on 2021-03-31
  • The Tauri files are now read on the app space instead of the tauri create. Also, the AppBuilder build function now returns a Result.
    • e02c941 refactor(tauri): support for building without environmental variables (#850) on 2021-02-09
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • Tauri now uses explicit Error variants with thiserror instead of relying on anyhow.
    • 156a0ad refactor(tauri): use explicit error types instead of anyhow (#1209) on 2021-02-10
  • Align HTTP API types with the documentation.
    • 2fc39fc fix(api/http): correct types (#1360) on 2021-03-17
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • 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.
    • 4491c70 fix(tauri/asset): escape octal sequences in css (#1166) on 2021-01-30
  • 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.
    • 0c691f4 feat(core): Use Wry custom protocol instead of embedded server (#1296) on 2021-02-25
  • The message and ask dialogs now use tinyfiledialogs-rs instead of tauri-dialog-rs.
    • 6eee355 refactor(core): use tinyfiledialogs-rs for message/confirmation dialogs (#1255) on 2021-02-17
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • Refactor the event callback payload and return an unlisten function on the listen API.
    • b670ec5 refactor(core): add unlisten, once APIs to the event system (#1359) on 2021-03-16
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • Adds unlisten and once APIs on the Rust event system.
    • b670ec5 refactor(core): add unlisten, once APIs to the event system (#1359) on 2021-03-16
  • The tauri::event module has been moved to a Webview manager API.
    • 07208df feat(core): add mult-window support (#1217) on 2021-02-11
  • The file dialog API now uses rfd. The filter option is now an array of { name: string, extensions: string[] }.
    • 2326bcd refactor(core): use nfd for file dialogs, closes #1251 (#1257) on 2021-02-18
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • Tauri now emits events on file drops on the webview window.
    • 2db901e feat(core): add file drop handler (#1352) on 2021-03-12
  • Fixes resource_dir resolution 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.
    • a7bc472 refactor(core): improve HTTP API, closes #1098 (#1237) on 2021-02-15
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • Added new Javascript API to extract name, version, tauri version from the running application. We exposed relaunch and exit as well to control your application state.
    • e511d39 feat(api): Expose application metadata and functions to JS api - fix #1387 (#1445) on 2021-04-08
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • The event listener once kind was moved to a dedicated function.
    • 372036c refactor(api): move event's once to its own function (#1276) on 2021-02-23
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • 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.
    • bf82136 feat(license): SPDX Headers (#1449) on 2021-04-11
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
    • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
  • Added support to multiple windows.
    • 07208df feat(core): add mult-window support (#1217) on 2021-02-11
  • Adds productName and version configs on tauri.conf.json > package.
    • 5b3d9b2 feat(config): allow setting product name and version on tauri.conf.json (#1358) on 2021-03-22
    • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
  • Plugins are now configurable through a tauri.conf.json > "plugins" > $pluginName object.
    • 2058cc3 feat(tauri): add plugin initialize (with config) API, run in parallel (#1194) on 2021-02-10
  • Renamed the Plugin trait init_script to initialization_script.
    • 5c5d8f8 refactor(tauri): rename init_script to initialization_script (#1200) on 2021-02-10
  • The plugin instance is now mutable and must be Send.
    • fb607ee refactor(tauri): plugin trait with mutable references (#1197) on 2021-02-10
    • 1318ffb refactor(core): remove async from app hooks, add InvokeMessage type (#1392) on 2021-03-26
  • Fixes the event system usage on the plugin ready hook.
    • 23132ac fix(tauri): run plugin::ready without webview.dispatch (#1164) on 2021-01-29
  • The allowlist configuration now has one object per module.
    • e0be59e refactor(core): split allowlist configuration per module (#1263) on 2021-02-20
  • The Tauri script is now injected with the webview init API, so it is available after page changes.
    • 4412b7c refactor(tauri): inject script with webview init API (#1186) on 2021-02-05
    • 8bdd894 refactor(core): move bundle script to /tauri crate (#1377) on 2021-03-23
  • Removed the no-server mode, the inliner, the dev server proxy and the loadAsset API.
    • 84d7cda refactor(core): remove no-server and its APIs (#1215) on 2021-02-11
    • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
  • Adds a global shortcut API.
    • 855effa feat(core): globalShortcut API (#1232) on 2021-02-14
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
  • Added async support to the Tauri Rust core on commit #a169b67.
    • 2bf55f8 chore: add changefile on 2021-02-03
    • e02c941 refactor(tauri): support for building without environmental variables (#850) on 2021-02-09
  • Alpha version of tauri-updater. Please refer to the README for more details.
    • 6d70c8e feat(updater): Alpha version (#643) on 2021-04-05
    • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
    • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
  • The Tauri integration with Webview was refactored to use traits, which allows custom implementations by developers and simplifies changes on the webview implementation.
    • b9ce7b9 refactor(tauri): Webview traits (#1183) on 2021-02-05
  • Added window management and window creation APIs.
    • a3d6dff feat(core): window API (#1225) on 2021-02-13
    • 641374b feat(core): window creation at runtime (#1249) on 2021-02-17
  • Use WRY as Webview interface, thanks to @wusyong.
    • 99ecf7b feat(tauri): use WRY as webview engine (#1190) on 2021-02-08

[0.11.1]

  • Update webview-official dependency which fix compatibility on macOS.
    • 692312a chore(deps) Update webview-official (#1152) on 2021-01-24

[0.11.0]

  • Match writeBinaryFile command name between js and rust
    • 486bd92 Fix: writeBinaryFile to call the correct command (fix #1133) (#1136) on 2021-01-06

[0.10.0]

  • Adds missing APIs features from allowlist to 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 update to update to the latest version.
    • b4544b6 chore(deps) Update Tauri API (#1072) on 2020-11-07

[0.9.2]

  • Bump all deps as noted in #975, #976, #977, #978, and #979.
    • 06dd75b chore: bump all js/rust deps (#983) on 2020-08-20

[0.9.1]

  • Adjust payload formatting to handle multibyte characters in front-end message payloads. - df70ca5 Fix #912 multibyte character breaks message (#914) on 2020-08-01

[0.9.0]

  • Make sure CSS content loaded with the loadAsset API is inside a template string and not injected raw.
    • e3e2e39 fix(tauri) ensure css content is loaded inside a string (#884) on 2020-07-22
    • b96b1fb inject css with template string to allow for line breaks (#894) on 2020-07-25
  • Pin the tauri-api dependency on the tauri crate so updates doesn't crash the build.
    • ad717c6 chore(tauri) pin tauri-api dep version (#872) on 2020-07-21
  • Fixes the Webview initialization on Windows.
    • 4abd12c fix(tauri) webview initialization on windows, fixes #879 (#885) on 2020-07-23

[0.8.0]

  • Use native dialog on window.alert and window.confirm. Since every communication with the webview is asynchronous, the window.confirm returns a Promise resolving to a boolean value. - 0245833 feat(tauri) make window.alert and window.confirm available, fix #848 (#854) on 2020-07-18 - dac0ae9 chore(changes) add tauri-api to JS dialogs changefile on 2020-07-19
  • The notification's body is now optional, closes #793.
    • dac1db3 fix(tauri) notification body optional, requestPermission() regression, closes #793 (#844) on 2020-07-16
  • 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 the invoke_handler by implementing the tauri::plugin::Plugin trait.
    • 78afee9 feat(tauri) add plugin system for rust (#494) on 2020-07-12
  • Renaming whitelist to allowlist (see #645).
    • a6bb3b5 refactor(tauri) rename whitelist to allowlist, ref #645 (#858) on 2020-07-19
  • Moving the webview implementation to webview, with the official Rust binding. This is a breaking change. IE support has been dropped, so the edge object on tauri.conf.json > tauri no longer exists and you need to remove it. webview.handle() has been replaced with webview.as_mut(). - cd5b401 feature: import official webview rust binding (#846) on 2020-07-18

[0.7.5]

  • Fixes Edge blank screen on Windows when running tauri dev (Tauri crashing window due to Edge reloading app because of missing Content-Type header).
    • Bumped due to a bump in tauri-api.
    • fedee83 fix(tauri.js) windows Edge blank screen on tauri dev (#808) on 2020-07-11

[0.7.4]

  • Ignoring non UTF-8 characters on the loopback command output.
    • f340b29 fix(tauri) addition to the previous commit on 2020-07-10

[0.7.3]

  • Properly run the loopback command on Windows.
  • Properly ignore the ${distDir}/index.html asset from the asset embedding. Previously every asset with name matching /(.+)index.html$/g were ignored.

[0.7.2]

Bumped due to dependency.

[0.7.1]

  • Fixes the assets embedding into the binary.

[0.7.0]

  • The execute_promise and execute_promise_sync helpers now accepts any tauri::Result where T: impl Serialize. This means that you do not need to serialize your response manually or deal with String quotes anymore. As part of this refactor, the event::emit function also supports impl Serialize instead of String.

[0.6.2]

  • Fixes the Windows build with the latest Windows SDK.

[0.6.1] - (Not Published)

[0.6.0]

  • Adds a command line interface option to tauri apps, configurable under tauri.conf.json > tauri > cli.
  • Fixes no-server mode not running on another machine due to fs::read_to_string usage instead of the include_str macro. Build no longer fails when compiling without environment variables, now the app will show an error.
  • Adds desktop notifications API.
  • Properly reflect tauri.conf.json changes on app when running tauri dev.