tauri-utils
Common utilities for the Tauri framework.
2.10.x
2.10.0
New Features
3f62c70d6(#13848) AddWebviewBuilder::limit_navigations_to_app_bound_domains,WebviewWindowBuilder::limit_navigations_to_app_bound_domains, and limitNavigationsToAppBoundDomains to tauri.config.json.7dbfc1fe5(#14620) Added theapp > appDirectoriesOverrideconfig to override the directories returned by theapp_*_dirpath APIs, either with a single root directory or per directory. This lets apps keep all of their data, including the data of Tauri itself and of plugins that use these APIs, in a single place of their choosing, such as next to the executable for portable apps. The override can also be set at runtime throughContext::config_mut.f6c1eb253(#15401) Addedbundle.windows.bundleVCRuntimeto copy the Visual C++ runtime DLLs into Windows MSI and NSIS installers. The bundler locates the runtime throughVCTOOLS_REDIST_DIRor the bundledvswhere.exe.d203f74a2(#15274) AddedImage::from_app_icon_resourceandImage::from_icon_resourceon Windows for loading images from icon resources embedded in the executable (identified by anIconResourceid or name), and the defaultdefault_window_iconfromtauri::generate_contextmacro is now loaded usingfrom_app_icon_resource. The resource idtauri-buildembeds the application icon with is exposed astauri_utils::platform::WINDOWS_APP_ICON_RESOURCE_ID.29265557c(#15410) Addedapp > windows > noRedirectionBitmapconfig option to disable the window redirection bitmap on Windows.023fe7f59(#15291) AddedResolved::resolve_with_base_scope_idto resolve an ACL with command scope ids assigned after a given value, so the result can be merged into an already resolved ACL without colliding scope ids.f6c1eb253(#15401) Addedbuild.windows.staticVCRuntimeto control MSVC static runtime linking. TheSTATIC_VCRUNTIMEenvironment variable is now deprecated and emits a migration warning when used.
Enhancements
ca160ad48(#15895)tauri buildnow warns whenproductNameis still set to the defaulttauri-app, since it names the generated bundles and is written into install paths and metadata that are expected to be unique to your application. The config documentation forproductNamenow lists what the field controls on each platform, andidentifier's documentation notes that the default value is rejected.19215f638(#15629) Emit acargo:rerun-if-changedfor each resource directory (and glob base directory), so that adding or removing a file inside a resource directory re-runs the build script and copies the new files. Previously only the individual files present at build time were watched, so newly added files were silently ignored until an unrelated rebuild.4a5065653(#14454) AddedRegularandClearLiquid Glass window effects, and theinteractivewindow effects option (macOS 27.0+) that enables the glass' visual response to user interactions.459fc315e(#15711) Fix different build and runtime debug assertion profiles on the tauri-utils crate can resulting in compilation errors.
Bug Fixes
3f6701bfc(#16069) Addedadditional-watch-foldersas an alias for thebuild > additionalWatchFoldersconfiguration value, so the kebab-case spelling that matches the camelCase key is accepted inTauri.toml. The previousadditional-watch-directoriesalias keeps working.29c87c3d3(#15777) Serialize the CSP directive map, header source maps and plugin config with sorted keys so writing the processed config (e.g. thetauri.conf.jsonembedded in Android/iOS projects) is deterministic across builds.3f40a35f5(#16070) Fixed header values configured with an object inapp > security > headersbeing serialized in a random order, which made the resulting header value differ between runs. Thekey valuepairs are now always sorted by key, matching the ordering already used when the configuration is serialized.4a2c4803f(#16071) Fixed theapp > security > headers > Permissions-Policyconfiguration being sent as a header namedPermission-Policy, which is not a real HTTP header, so the policy had no effect. The header is now correctly namedPermissions-Policy.
What's Changed
Dependencies
6a7afc27c(#16053) Updated brotli to v9e9e6a5eef(#15677) Updateserial_testto 3.5 to pull in the updatedsccand fix RUSTSEC advisory8a97d387a(#15352) Updatedctorcrate to19e9a54dea(#15890) Update swift-rs to support builds using Xcode 27.7cc68e74f(#15307) Updateddom_querydependency to 0.28.0
Breaking Changes
2.9.x
2.9.3
Enhancements
-
c2b8f4783(#15373 by @MavenRain) Improve diagnostics for invalid plugin and permission identifiers.The
Identifierdeserializer now wraps the inner error with the offending identifier string so the message readsinvalid plugin or permission identifier '<value>': ..., surfacing the bad entry without requiring a grep through the file.The previous parse failure (
failed to parse JSON: identifiers can only include lowercase ASCII, hyphens which are not leading or trailing, and a single colon if using a prefix at line 16 column 23) now readsfailed to parse JSON: invalid plugin or permission identifier 'sqlite_proxy:allow-foo': identifiers can only include lowercase ASCII, hyphens which are not leading or trailing, and a single colon if using a prefix at line 16 column 23.
Bug Fixes
-
2783e6079(#15481 by @thanhtoantnt) FixNumber::Intbeing silently coerced toNumber::Floatonserde_jsonround-trip.From<serde_json::Value> for Valuewas checkingas_f64()first, which succeeds for every integer that fits in an f64, so integer JSON numbers were always deserialized asNumber::Float. The check order is nowas_i64()→as_u64()(cast toi64, wrapping for values abovei64::MAX) →as_f64(), matching serde_json's own visitor convention.
2.9.2
Bug Fixes
-
b5b72ce51(#15383 by @Legend-Master) Fix a regression in tauri-utils 2.8.3 that made empty path an invalid resource target, e.g.{"bundle": {"resources": {"README.md": "",}}}(this means
README.md->$RESOURCE/README.md, note this is a confusing behavior, and will be changed in v3) -
3fd8ba2c0(#15388 by @Legend-Master) Fix a regression in tauri-utils 2.8.3 that made an empty directory makes it skip all the following entries, e.g.{"bundle": {"resources": ["empty-directory","README.md"]}}if
empty-directoryis empty, theREADME.mdwill not be copied to the resource directory (skipped)
2.9.1
2.9.0
New Features
-
001c8fe3d(#14722) Add a WebView option to control browser-level general autofill behavior. This option does not disable password or credit card autofill. On Windows (WebView2), setting it to true disables the general autofill "Suggestions" UI, which may appear even whenautocomplete="off"is specified on input elements. On Linux, macOS, iOS, and Android, this option is currently unsupported and performs no operation. -
926a57bb0(#15201) Added uninstaller icon and uninstaller header image support for NSIS installer.Notes:
- For
tauri-bundlerlib users, theNsisSettingsnow has 2 new fieldsuninstaller_iconanduninstaller_header_imagewhich can be a breaking change - When bundling with NSIS, users can add
uninstallerIconanduninstallerHeaderImageunderbundle > windows > nsisto configure them.
- For
-
093e2b47c(#14484) Support creating multiple windows on Android (activity embedding) and iOS (scenes).
Dependencies
e032c3b34(#14959) Add newhtml-manipulation-2andbuild-2feature flags that usedom_queryinstead ofkuchikikifor HTML parsing / manipulation. This allows downstream users to removekuchikikiand its dependencies from their dependency tree.1ef6a119b(#15115) Changedtomlcrate version from0.9to">=0.9, <=1"
2.8.x
2.8.3
Bug Fixes
-
7b16dafb1(#14986 by @montyc1999) Sort csp/plugin/header configs when generating HashMap constructors so thatgenerate_context!is deterministic.See: https://github.com/tauri-apps/tauri/issues/14978 for more information
-
c3cbff3f7(#14662 by @Legend-Master) Fix resource path handles./path differently (e.g../some-foldershould be the same assome-folder)
2.8.2
Enhancements
2.8.1
Bug Fixes
1573c7240(#14561 by @FabianLars) Fixed an issue that caused schema files to have\rcharacters on Windows.
2.8.0
New Features
f5851ee00(#14089) Adds thescrollBarStyleoption to the window configuration.3b4fac201(#14194) Addtauri.conf.json > bundle > android > autoIncrementVersionCodeconfig option to automatically increment the Android version code.3d6868d09(#14128) AddedFileAssociation::exported_typeandFileAssociation::content_typesfor better support to defining custom types on macOS.ed7c9a410(#14108) Addedbundle > macOS > infoPlistandbundle > iOS > infoPlistconfigurations to allow defining custom Info.plist extensions.7b0d4e732(#14265) Addedhtml::normalize_script_for_csp.cc8c0b531(#14031) Added support to universal app links on macOS with theplugins > deep-link > desktop > domainsconfiguration.
Enhancements
2.7.x
2.7.0
New Features
91508c0b8(#13881 by @pepperoni505) Introduces a new configuration option that allows you to specify custom folders to watch for changes when runningtauri dev.0c402bfb6(#13997 by @lucasfernog) Increase default iOS deployment target iOS to 14.0.
Enhancements
9300b59f6(#13787 by @JakenHerman) Addedfips_compliantfield toWixConfigso that it can be configured viatauri.conf.jsonas well.72b4226ee(#13809 by @Beanow) ReducedDebugformat size for binary buffers.
Bug Fixes
2.6.x
2.6.0
New Features
232265c70(#13209 by @kandrelczyk) Addedplatform::bundle_type.33d079392(#13811 by @mhbagheri-99) Allow runner configuration to be an object with cmd, cwd, and args properties. The runner can now be configured as{ "cmd": "my_runner", "cwd": "/path", "args": ["--quiet"] }while maintaining backwards compatibility with the existing string format.
2.5.x
2.5.0
New Features
414619c36(#13536 by @Tunglies) Added support for thebundleNameproperty in the macOS bundler configuration. This allows specifying theCFBundleNamevalue for generated macOS bundles.09c19932d(#13304 by @39zde) Adds the option to configure the HTTPService-Worker-Allowedresponse header inapp > security > headers
Bug Fixes
eb3f0248c(#13646 by @Legend-Master) Only writeThis default permission set includes the followingto the reference if the default permission set is not emptyc8a30a61d(#13476 by @lucasfernog) Fix capability filtering viatauri.conf.json > app > security > capabilitiesnot working when generating allowed commands.b52da29d5(#13429 by @Legend-Master) FixmainBinaryNamedoesn't work when there's.in it
What's Changed
168629646(#13418 by @Legend-Master) Put dynamic ACL into a featuredynamic-acl, this is currently enabled by default to align with the previous behaviors, you can disable it throughdefault-features = falseto reduce the final binary size by not including the ACL references
Dependencies
Breaking Changes
b7cdb3b39(#13410 by @Legend-Master) Feature gated the HTML manipulation code intauri-utilsbehined a flag to reduce compile time
Full Changelog
Version List
- v2.10.0 Sep 26, 2026
- v2.9.3 Jun 17, 2026
- v2.9.2 May 16, 2026
- v2.9.1 May 6, 2026
- v2.9.0 Apr 30, 2026
- v2.8.3 Mar 4, 2026
- v2.8.2 Feb 2, 2026
- v2.8.1 Nov 30, 2025
- v2.8.0 Oct 20, 2025
- v2.7.0 Aug 18, 2025
- v2.6.0 Jul 20, 2025
- v2.5.0 Jun 24, 2025
- v2.4.0 Apr 15, 2025
- v2.3.1 Apr 1, 2025
- v2.3.0 Mar 20, 2025
- v2.2.0 Feb 26, 2025
- v2.1.1 Jan 2, 2025
- v2.1.0 Nov 9, 2024
- v2.0.2 Oct 20, 2024
- v2.0.1 Oct 3, 2024
- v2.0.0 Oct 2, 2024
- v2.0.0-rc.13 Sep 27, 2024
- v2.0.0-rc.12 Sep 17, 2024
- v2.0.0-rc.11 Sep 15, 2024
- v2.0.0-rc.10 Sep 10, 2024
- v2.0.0-rc.9 Sep 5, 2024
- v2.0.0-rc.8 Sep 4, 2024
- v2.0.0-rc.7 Aug 28, 2024
- v2.0.0-rc.6 Aug 22, 2024
- v2.0.0-rc.5 Aug 20, 2024
- v2.0.0-rc.4 Aug 20, 2024
- v2.0.0-rc.3 Aug 17, 2024
- v2.0.0-rc.2 Aug 9, 2024
- v2.0.0-rc.1 Aug 7, 2024
- v2.0.0-rc.0 Aug 2, 2024
- v2.0.0-beta.19 Jul 12, 2024
- v2.0.0-beta.18 Jul 2, 2024
- v2.0.0-beta.17 May 29, 2024
- v2.0.0-beta.16 May 23, 2024
- v2.0.0-beta.15 May 9, 2024
- v2.0.0-beta.14 May 6, 2024
- v2.0.0-beta.13 Apr 22, 2024
- v2.0.0-beta.12 Apr 15, 2024
- v2.0.0-beta.11 Apr 2, 2024
- v2.0.0-beta.10 Mar 18, 2024
- v2.0.0-beta.9 Mar 11, 2024
- v2.0.0-beta.8 Mar 7, 2024
- v2.0.0-beta.7 Mar 6, 2024
- v2.0.0-beta.6 Feb 29, 2024
- v2.0.0-beta.5 Feb 27, 2024
- v2.0.0-beta.4 Feb 22, 2024
- v2.0.0-beta.3 Feb 21, 2024
- v2.0.0-beta.2 Feb 19, 2024
- v2.0.0-beta.1 Feb 4, 2024
- v2.0.0-beta.0 Feb 3, 2024
- v2.0.0-alpha.13 Jan 16, 2024
- v2.0.0-alpha.12 Dec 19, 2023
- v2.0.0-alpha.11 Nov 20, 2023
- v2.0.0-alpha.10 Oct 28, 2023
- v2.0.0-alpha.9 Oct 19, 2023
- v2.0.0-alpha.8 Oct 8, 2023
- v2.0.0-alpha.7 Aug 14, 2023
- v2.0.0-alpha.6 Jun 17, 2023
- v2.0.0-alpha.5 May 18, 2023
- v2.0.0-alpha.4 Apr 10, 2023
- v2.0.0-alpha.3 Apr 3, 2023
- v2.0.0-alpha.2 Mar 20, 2023
- v2.0.0-alpha.1 Feb 2, 2023
- v2.0.0-alpha.0 Dec 9, 2022
- v1.5.3 Feb 19, 2024
- v1.5.2 Dec 20, 2023
- v1.5.0 Sep 28, 2023
- v1.4.0 Jun 14, 2023
- v1.3.0 May 3, 2023
- v1.2.1 Nov 24, 2022
- v1.2.0 Nov 8, 2022
- v1.1.1 Sep 16, 2022
- v1.1.0 Sep 15, 2022
- v1.0.3 Jul 6, 2022
- v1.0.2 Jun 30, 2022
- v1.0.1 Jun 29, 2022
- v1.0.0 Jun 16, 2022
- v1.0.0-rc.9 Jun 14, 2022
- v1.0.0-rc.8 May 27, 2022
- v1.0.0-rc.7 May 18, 2022
- v1.0.0-rc.6 May 7, 2022
- v1.0.0-rc.5 Apr 26, 2022
- v1.0.0-rc.4 Mar 28, 2022
- v1.0.0-rc.3 Mar 7, 2022
- v1.0.0-rc.2 Feb 18, 2022
- v1.0.0-rc.1 Feb 12, 2022
- v1.0.0-rc.0 Feb 10, 2022
- v1.0.0-beta-rc.1 Apr 25, 2021
- v1.0.0-beta-rc.0 Apr 14, 2021
- v1.0.0-beta.3 Aug 16, 2021
- v1.0.0-beta.2 Jul 16, 2021
- v1.0.0-beta.1 Jun 23, 2021
- v1.0.0-beta.0 May 11, 2021
© 2026 Tauri Contributors. CC-BY / MIT