0ab2b3306 (#11205 by @lucasfernog) Downgrade MSRV to 1.77.2 to support Windows 7.a247170e1 (#11056 by @SpikeHD) Expose the ability to enabled browser extensions in WebView2 on Windows.f57a729cd (#11039 by @amrbashir) Add upgradeCode in wix configuration to set an upgrade code for your MSI installer. This is recommended to be set if you plan to change your productName.1efa5e718 (#11099 by @lucasfernog) Rerun build script if the platform-specific configuration file changes.ad294d274 (#11032 by @amrbashir) Add app > windows > create option to choose whether to create this window at app startup or not.35bd9dd3d (#10977 by @amrbashir) Add mainBinaryName config option to set the file name for the main binary.0a47bf043 (#10946 by @FabianLars) Fixed an issue that made the identifier in tauri.conf.json optional while it was actually required.d9c8d3cc8 (#10902 by @Legend-Master) Update infer to 0.16, tray icon to 0.17, urlpattern to 0.3, image to 0.25faa259bac (#10907 by @lucasfernog) The Assets::iter function now must return a iterator with Item = (Cow<'_, str>, Cow<'_, [u8]>) to be more flexible on contexts where the assets are not 'static.f0acf504a (#10858 by @lucasfernog) Validate duplicate capability identifier.58dda44a5 (#10339 by @Legend-Master) Add a new option minimumWebview2Version for Windows NSIS installer to trigger a webview2 update if the user's webview2 is older than this version03f2a5098 (#10718 by @rdlabo) Update swift-rs fixing a plugin build when native dependencies are used.073bb4f45 (#10772 by @lucasfernog) Removed the deprecated webview_fixed_runtime_path config option, use the webview_install_mode instead.9bcff3cd7 (#10703 by @lucasfernog) Properly remove isolation script on Android.f4d5241b3 (#10731 by @amrbashir) Update documentation icon path.da381e07f (#10696 by @lucasfernog) Implemented resource_dir on Android, which returns a URI that needs to be resolved using AssetManager::open. This will be handled by the file system plugin.da381e07f (#10696 by @lucasfernog) Fix resource_dir on iOS.8d148a9e2 (#10634 by @anatawa12) Custom sign command with object notation for whitespaces in the command path and arguments.5c335ae9a (#10648 by @Flakebi) Prevent build script from rerunning unnecessarily by only writing files when the content changes.0bb7b0f35 (#10559 by @Norbiros) Return autogenerated permissions from autogenerate_command_permissions.9e891933d (#10293 by @amrbashir) Fix ResourcePaths iterator returning an unexpected result for mapped resources, for example "../resources/user.json": "resources/user.json" generates this resource resources/user.json/user.json where it should generate just resources/user.json.9fe846615 (#10547 by @lucasfernog) Fix plugin permissions documentation heading for permissions table.f5dfc0280 (#10533 by @FabianLars) Fixed an issue causing tauri ios init to fail if iOS.minimumSystemVersion was not configured explicitly.8dc81b6cc (#10496 by @lucasfernog) Added bundle > ios > template configuration option for custom Xcode project YML Handlebars template using XcodeGen.02c00abc6 (#10495 by @lucasfernog) Added bundle > ios > minimumSystemVersion configuration option.7e810cb2a (#10485 by @anatawa12) Fixed an issue where permission files will be generated with ':' in the file path.a5bfbaa62(#9962) Added bundle > iOS > frameworks configuration to define a list of frameworks that are linked to the Xcode project when it is generated.7aeac39e7 (#10397) Make the set of gtk application id optional, to allow more then one instance of the app running at the same time.498f405ca (#10404) Fixed an issue where configuration parsing errors always displayed 'tauri.conf.json' as the file path, even when using 'Tauri.toml' or 'tauri.conf.json5'.The error messages now correctly shows the actual config file being used.
426d14bb4 (#10423) Explicitly check that the main frame's origin is the sender of Isolation Payloads4c239729c (#10167 by @amrbashir) Add RawIsolationPayload::content_type method.fafc238f7 (#9977) Add bundle > homepage option, if unset, it will fallback to homepage defined in Cargo.toml.656a64974 (#9318) Added a configuration option to disable hardened runtime on macOS codesign.5b769948a (#9959) Add include_image macro to help embedding instances of Image struct at compile-time in rust to be used with window, menu or tray icons.3ab170917 (#9932) Add an option to disable NSIS compression bundle > nsis > compression: "none"f21029b1b (#9994) Add bundle > nsis > startMenuFolder option to customize start menu folder for NSIS installer3ab170917 (#9932) Changed NsisSettings::compression field from Option<NsisCompression> to just NsisCompression911242f09 (#9883) Move updater target from bundle > targets to a separate field bundle > createUpdaterArtifacts3ab170917 (#9932) Changed NsisConfig::compression field from Option<NsisCompression> to just NsisCompression8a1ae2dea(#9843) Added an option to use a Xcode project for the iOS plugin instead of a plain SwiftPM project.5462e5cad(#9731) Add installer_hooks NSIS configuration fieldd6d3efbd1(#9865) Add sign_command in WindowsConfigfc1543c65(#9864) Removed skip_webview_install (skipWebviewInstall) option from config, which has been deprecated for a while now and planned to be removed in v2. Use webview_install_mode (webviewInstallMode) instead.265c23886(#9375) Removed Config::binary_name and PackageInfo::package_name36b4c1249(#9331) Added support for provides, conflicts and replaces (obsoletes for RPM) options for bundler > deb and bundler > rpm configs.259d84529(#9209) Added preInstallScript, postInstallScript, preRemoveScript and postRemoveScript options for bundler > deb and bundler > rpm configs.7c334cb18(#9327) Make the isolation pattern encrypt key unextractable.a804a70a7(#9328) The isolation iframe script now removes itself after execution.06833f4fa(#9100) Rename FileDrop to DragDrop on structs, enums and enum variants. Also renamed file_drop to drag_drop on fields and function names.7213b9e47(#9124) Fallback to an empty permission set if the plugin did not define its default permissions.4ef17d083(#9116) The ACL configuration for remote URLs now uses the URLPattern standard instead of glob patterns.86fa339de(#9071) Fix compile time error in context generation when using app.windows.windowEffects.color6c0683224(#9068) Fixes scope resolution grouping scopes for all windows.c68218b36(#8990) Fix BundleTarget::to_vec returning an empty vec for BundleTarget::All variant.c68218b36(#8990) Add BundleType::all method to return all possible BundleType variants.9aa0d6e95(#9069) Removed debug_eprintln! and consume_unused_variable macros.bb23511ea(#9079) Changed CapabiltyFile::List enum variant to be a tuple-struct and added CapabiltyFile::NamedList. This allows more flexibility when parsing capabilties from JSON files.d7f56fef(#9014) Allow defining a permission that only applies to a set of target platforms via the platforms configuration option.3657ad82(#9008) Allow defining permissions for the application commands via tauri_build::Attributes::app_manifest.bc5b5e67(#8984) Do not include a CSP tag in the application HTML and rely on the custom protocol response header instead.a76fb118(#8950) Changed the capability format to allow configuring both remote: { urls: Vec<String> } and local: bool (default: true) instead of choosing one on the context field.361ec37f(#8932) Moved ProgressBarState from tauri-utils to the tauri::window module and removed the unity_uri field.0cb0a15c(#8789) Add webviews array on the capability for usage on multiwebview contexts.83a68deb(#8797) Added a new configuration option tauri.conf.json > app > security > capabilities to reference existing capabilities and inline new ones. If it is empty, all capabilities are still included preserving the current behavior.8d16a80d(#8802) The Context struct now includes the runtime authority instead of the resolved ACL. This does not impact most applications.28fb036c(#8852) Enhance resource directory resolution on development.dd7571a7(#8815) Do not generate JSON schema and markdown reference file if the plugin does not define any permissions and delete those files if they exist.5618f6d2(#8856) Relax requirements on plugin's identifiers to be alphanumeric and - instead of only lower alpha and -.8d16a80d(#8802) Refactored the capability types and resolution algorithm.f284f9c5(#8898) Changed the capability remote configuration to take a list of urls instead of domains for more flexibility.4e101f80(#8756) Moved the capability JSON schema to the src-tauri/gen folder so it's easier to track changes on the capabilities folder.74a2a603(#8661) Implement access control list for IPC usage.9eaeb5a8(#8622) Add parent option for window config.58fe2e81(#8670) Add WebviewUrl::CustomProtocol enum variant.6639a579(#8441) Added the WindowConfig::proxy_url WebviewBuilder::proxy_url() / WebviewWindowBuilder::proxy_url() options when creating a webview.8de308d1(#8723) Restructured Tauri config per RFC#5:
package.productName, package.version and tauri.bundle.identifier fields to the top-level.package object.tauri object to app.tauri.bundle object to the top-level.build.distDir field to frontendDist.build.devPath field to devUrl and will no longer accepts paths, it will only accept URLs.tauri.pattern to app.security.pattern.tauri.bundle.updater object, and its fields have been moved to the updater plugin under plugins.updater object.build.withGlobalTauri to app.withGlobalTauri.tauri.bundle.dmg object to bundle.macOS.dmg.tauri.bundle.deb object to bundle.linux.deb.tauri.bundle.appimage object to bundle.linux.appimage.bundle.license and bundle.licenseFile.AppUrl to FrontendDist and refactored its variants to be more explicit.c77b4032(#8280) Renamed config::WindowUrl to config::WebviewUrl.
a093682d(#8621) Changed error field in ConfigError::FormatToml to be boxed Box<toml::de::Error> to reduce the enum ConfigError size in memory.
58fe2e81(#8670) Changed dist_dir and dev_path config options to be optional.
5e84e92e(#8243) Changed platform::windows_version to return a (u32, u32, u32) instead of Option<(u32, u32, u32)>c6c59cf2 Pull changes from Tauri 1.5 release.c085adda(#8009) Added set_progress_bar to Window.c1ec0f15(#7933) Added the always_on_bottom option to the window configuration.880266a7(#8031) Bump the MSRV to 1.70.ed32257d(#7794) On Windows, add WindowEffect::Tabbed,WindowEffect::TabbedDark and WindowEffect::TabbedLightebcc21e4(#8057) Renamed the beforeDevCommand, beforeBuildCommand and beforeBundleCommand hooks environment variables from TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG to TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE and TAURI_ENV_DEBUG to differentiate the prefix with other CLI environment variables.id for the tray icon in the tauri configuration file.100d9ede(#7802) Follow file name conventions set by desktop for mobile Tauri configuration files. Added target argument on most config::parse methods.4db363a0(#6589) Added visible_on_all_workspaces configuration option to WindowBuilder, Window, and WindowConfig.7fb419c3(#7535) Add option to specify a tooltip text for the tray icon in the config.74b1f4fc(#7384) Add WindowEffect::MicaDark and WindowEffect::MicaLight3b98141a(#3736) Add a configuration object for file associations under BundleConfig.9a79dc08(#6947) Remove enable_tauri_api from the IPC scope.09376af5(#6704) Moved the cli feature to its own plugin in the plugins-workspace repository.e1e85dc2(#6925) Moved the protocol scope configuration to the asset_protocol field in SecurityConfig.e1e85dc2(#6925) Moved the updater configuration to the BundleConfig.b072daa3(#6919) Moved the updater feature to its own plugin in the plugins-workspace repository.3188f376(#6883) Bump the MSRV to 1.65.e1e85dc2(#6925) Removed the allowlist configuration.2d5378bf(#6717) Remove the updater's dialog option.android configuration object under tauri > bundle.
shadow option to the window configuration and set_shadow option to the window allow list.
crate_name field on PackageInfo.
android and ios Tauri configuration files.
9aa34ada(#7645) Add setting to switch to http://<scheme>.localhost/ for custom protocols on Windows.acc36fe1(#6158) Add option to configure require_literal_leading_dot on fs and asset protocol scopes.35cd751a(#5176) Added the desktop_template option on tauri.conf.json > tauri > bundle > deb.c4d6fb4b(#2353) Added the maximizable, minimizable and closable options to the window configuration.3cb7a3e6(#6997) Add MimeType::parse_with_fallback and MimeType::parse_from_uri_with_fallback29488205(#6867) Allow specifying custom language files of Tauri's custom messages for the NSIS installere092f799(#6887) Add nsis > template option to specify custom NSIS installer template.cd3846c8(#6955) Add WindowsUpdateInstallMode::nsis_args85e77fb7(#6762) Correctly determine MIME type of .txt files.additional_browser_args option to the window configuration.
content_protected option to the window configuration.
.less, .sass and .styl files.
nsis bundles on non-Windows platforms.
nsis bundle target
allowlist > app > show/hide always disabled when allowlist > app > all: false.
package > productName in the tauri config and produce errors if it contains one of the following characters /\:*?\"<>|
PatternKind::Isolation is now defined even without the isolation feature.
app allowlist module.
tauri.conf.json > bundle > publisher field to specify the app publisher.
platform::resource_dir.
title option on the system tray configuration (macOS only).
user_agent option to the window configuration.
mime_type module.
set_cursor_grab, set_cursor_visible, set_cursor_icon and set_cursor_position APIs.
build > beforeBundleCommand in tauri.conf.json to run a shell command before the bundling phase.
before_dev_command and before_build_command config value to allow configuring the current working directory.
before_dev_command to force the CLI to wait for the command to finish before proceeding.
config::parse module.
menu_on_left_click: bool to the SystemTrayConfig.
config::parse::read_platform and config::parse::get_platform_config_filename.
platform::windows_version function.
BundleConfig::targets to a BundleTarget enum to enhance generated documentation.
platform::is_windows_7.
tauri.conf.json > tauri > bundle > appimage > bundleMediaFramework.
PackageInfo::version is now a semver::Version instead of a String.
$schema support to tauri.conf.json.
dangerous_allow_asset_csp_modification configuration value has been changed to allow a list of CSP directives to disable.
io module with the read_line method.
useBootstrapper option. Use https://github.com/tauri-apps/fix-path-env-rs instead.
Added an option to disable the CSP injection of distributable assets nonces and hashes.
Use the default value for MacConfig.minimumSystemVersion if the value is set to an empty string.
Replace multiple dependencies who's C code compiled concurrently and caused the other ones to bloat compile time significantly.
zstd -> brotli
blake3 -> a vendored version of the blake3 reference
ring -> getrandom
See https://github.com/tauri-apps/tauri/pull/3773 for more information about these specific choices.
is_symlink API compatible with Rust v1.57 instead of std/fs/struct.Metadata.html#method.is_symlink.
tauri > bundle > macOS > minimumSystemVersion to 10.13.
freezePrototype configuration to false.
allowlist configuration now includes a clipboard object, controlling the exposure of the writeText and readText APIs.
message, ask and confirm APIs.
allowlist configuration now includes a process object, controlling the exposure of the relaunch and exit APIs.
window allowlist now includes options to enable all window modification APIs: center, close, create, hide, maximize, minimize, print, requestUserAttention, setAlwaysOnTop, setDecorations, setFocus, setFullscreen, setIcon, setMaxSize, setMinSize, setPosition, setResizable, setSize, setSkipTaskbar, setTitle, show, startDragging, unmaximize and unminimize.
asset allowlist configuration, which enables the asset protocol and defines it access scope.
CliArg numeric types from u64 to usize.
nonce to script and style tags and set them on the CSP (script-src and style-src fetch directives).
tauri::api::process::current_binary is now cached when loading the binary.
dev_csp to the security configuration object.
tauri > bundle > windows > webviewFixedRuntimePath config option.
pubkey is now a required field for security reasons. Sign your updates with the tauri signer command.
isolation pattern.
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:
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 failedtauri.conf.json5 exists
a. Parse it with json5
b. Return error if all above steps failedcli.rs to tauri-build so using the Cargo CLI directly processes the files for the application execution in development.
tauri.conf.json > tauri > windows is not set.
1.56.
scope glob array config under tauri > allowlist > fs.
Adds assetScope glob array config under tauri > allowlist > protocol.
Adds scope URL array config under tauri > allowlist > http.
shell allowlist now includes a sidecar flag, which enables the use of the shell API to execute sidecars.
https on release builds.
Debug on public API structs and enums.
config > package > productName on Linux (previously converted to kebab-case).
<script></script> tags.
script tags with type="module".
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:
Params noteParams 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.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:
default_runtime proc macro to allow us to give item definitions a custom runtime only when
the specified feature is enabled.tauri-runtime:
Params noteParams, MenuId, Tag, TagRef.menu::{MenuHash, MenuId, MenuIdRef} as type aliases for the internal type that menu types now use.
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 directlyRuntime::system_tray has no more MenuId generic and uses the string based SystemTray type directly.CustomMenuItem::id_value() is now hashed on creation and exposed as the id field with type MenuHash.tauri-runtime-wry:
Params notetauri-runtime.tauri-utils:
Assets::get signature has changed to take a &AssetKey instead of impl Into<AssetKey> to become trait object
safe.Params and replace with strings (#2191) on 2021-07-15dev_path and dist_dir to be an array of root files and directories to embed.
tauri.conf.json > build > devPath and tauri.conf.json > build > distDir values.
file_drop_enabled flag on WindowConfig.
phf crate export (not public API).
assets field on the tauri::Context struct is now a Arc<impl Assets>.
csp injection, configured on tauri.conf.json > tauri > security > csp.
platform::resource_dir API now takes the PackageInfo.
package object on tauri.conf.json.
tauri create.
Also, the AppBuilder build function now returns a Result.