Skip to content

tauri-utils

Common utilities for the Tauri framework.

2.10.x

2.10.0

Sep 26, 2026
New Features
  • 3f62c70d6 (#13848) Add WebviewBuilder::limit_navigations_to_app_bound_domains, WebviewWindowBuilder::limit_navigations_to_app_bound_domains, and limitNavigationsToAppBoundDomains to tauri.config.json.
  • 7dbfc1fe5 (#14620) Added the app > appDirectoriesOverride config to override the directories returned by the app_*_dir path 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 through Context::config_mut.
  • f6c1eb253 (#15401) Added bundle.windows.bundleVCRuntime to copy the Visual C++ runtime DLLs into Windows MSI and NSIS installers. The bundler locates the runtime through VCTOOLS_REDIST_DIR or the bundled vswhere.exe.
  • d203f74a2 (#15274) Added Image::from_app_icon_resource and Image::from_icon_resource on Windows for loading images from icon resources embedded in the executable (identified by an IconResource id or name), and the default default_window_icon from tauri::generate_context macro is now loaded using from_app_icon_resource. The resource id tauri-build embeds the application icon with is exposed as tauri_utils::platform::WINDOWS_APP_ICON_RESOURCE_ID.
  • 29265557c (#15410) Added app > windows > noRedirectionBitmap config option to disable the window redirection bitmap on Windows.
  • 023fe7f59 (#15291) Added Resolved::resolve_with_base_scope_id to 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) Added build.windows.staticVCRuntime to control MSVC static runtime linking. The STATIC_VCRUNTIME environment variable is now deprecated and emits a migration warning when used.
Enhancements
  • ca160ad48 (#15895) tauri build now warns when productName is still set to the default tauri-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 for productName now lists what the field controls on each platform, and identifier's documentation notes that the default value is rejected.
  • 19215f638 (#15629) Emit a cargo:rerun-if-changed for 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) Added Regular and Clear Liquid Glass window effects, and the interactive window 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) Added additional-watch-folders as an alias for the build > additionalWatchFolders configuration value, so the kebab-case spelling that matches the camelCase key is accepted in Tauri.toml. The previous additional-watch-directories alias 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. the tauri.conf.json embedded in Android/iOS projects) is deterministic across builds.
  • 3f40a35f5 (#16070) Fixed header values configured with an object in app > security > headers being serialized in a random order, which made the resulting header value differ between runs. The key value pairs are now always sorted by key, matching the ordering already used when the configuration is serialized.
  • 4a2c4803f (#16071) Fixed the app > security > headers > Permissions-Policy configuration being sent as a header named Permission-Policy, which is not a real HTTP header, so the policy had no effect. The header is now correctly named Permissions-Policy.
What's Changed
Dependencies
Breaking Changes
  • 4a5065653 (#14454) The WindowEffect enum is now #[non_exhaustive] so new effects can be added without a breaking change. Exhaustive match statements on it must add a wildcard arm.

2.9.x

2.9.3

Jun 17, 2026
Enhancements
  • c2b8f4783 (#15373 by @MavenRain) Improve diagnostics for invalid plugin and permission identifiers.

    The Identifier deserializer now wraps the inner error with the offending identifier string so the message reads invalid 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 reads failed 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) Fix Number::Int being silently coerced to Number::Float on serde_json round-trip.

    From<serde_json::Value> for Value was checking as_f64() first, which succeeds for every integer that fits in an f64, so integer JSON numbers were always deserialized as Number::Float. The check order is now as_i64() → as_u64() (cast to i64, wrapping for values above i64::MAX) → as_f64(), matching serde_json's own visitor convention.

2.9.2

May 16, 2026
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-directory is empty, the README.md will not be copied to the resource directory (skipped)

2.9.1

May 6, 2026
Dependencies

2.9.0

Apr 30, 2026
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 when autocomplete="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-bundler lib users, the NsisSettings now has 2 new fields uninstaller_icon and uninstaller_header_image which can be a breaking change
    • When bundling with NSIS, users can add uninstallerIcon and uninstallerHeaderImage under bundle > windows > nsis to configure them.
  • 093e2b47c (#14484) Support creating multiple windows on Android (activity embedding) and iOS (scenes).

Dependencies
  • e032c3b34 (#14959) Add new html-manipulation-2 and build-2 feature flags that use dom_query instead of kuchikiki for HTML parsing / manipulation. This allows downstream users to remove kuchikiki and its dependencies from their dependency tree.
  • 1ef6a119b (#15115) Changed toml crate version from 0.9 to ">=0.9, <=1"

2.8.x

2.8.3

Mar 4, 2026
Bug Fixes

2.8.2

Feb 2, 2026
Enhancements
  • 2d28e3143 (#14632 by @sftse) Small code refactors for improved code readability. No user facing changes.

2.8.1

Nov 30, 2025
Bug Fixes

2.8.0

Oct 20, 2025
New Features
  • f5851ee00 (#14089) Adds the scrollBarStyle option to the window configuration.
  • 3b4fac201 (#14194) Add tauri.conf.json > bundle > android > autoIncrementVersionCode config option to automatically increment the Android version code.
  • 3d6868d09 (#14128) Added FileAssociation::exported_type and FileAssociation::content_types for better support to defining custom types on macOS.
  • ed7c9a410 (#14108) Added bundle > macOS > infoPlist and bundle > iOS > infoPlist configurations to allow defining custom Info.plist extensions.
  • 7b0d4e732 (#14265) Added html::normalize_script_for_csp.
  • cc8c0b531 (#14031) Added support to universal app links on macOS with the plugins > deep-link > desktop > domains configuration.
Enhancements
  • 59089723f (#14091) Added a config to set a data_directory relative to the app-specific data dir in JavaScript and tauri.conf.json.

2.7.x

2.7.0

Aug 18, 2025
New Features
Enhancements
Bug Fixes
  • 1a3d1a024 (#13995 by @will3942) Fix Tauri iOS build with binary XCFramework dependencies, allows extracting binaryTargets that are zipped and also not including XCFrameworks when linking.

2.6.x

2.6.0

Jul 20, 2025
New Features
  • 232265c70 (#13209 by @kandrelczyk) Added platform::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

Jun 24, 2025
New Features
  • 414619c36 (#13536 by @Tunglies) Added support for the bundleName property in the macOS bundler configuration. This allows specifying the CFBundleName value for generated macOS bundles.
  • 09c19932d (#13304 by @39zde) Adds the option to configure the HTTP Service-Worker-Allowed response header in app > security > headers
Bug Fixes
What's Changed
  • 168629646 (#13418 by @Legend-Master) Put dynamic ACL into a feature dynamic-acl, this is currently enabled by default to align with the previous behaviors, you can disable it through default-features = false to reduce the final binary size by not including the ACL references
Dependencies
Breaking Changes

Full Changelog

tauri-utils full changelog

Version List


© 2026 Tauri Contributors. CC-BY / MIT