tauri-utils-v3.0.0-alpha.0
firecrawl/pdf-inspectortauri-utils-v3.0.0-alpha.0Sep 12, 2026by github-actions[bot]
Upgrading?
AI Summary
The v3 alpha of Tauri utilities introduces a significant performance improvement to the ACL (Access Control List) system and changes how resources are resolved at runtime, eliminating the need to copy them to the target directory during build.
Key Highlights
- Resources now resolved from source paths at runtime instead of copying to the cargo target directory.
- Reduced ACL size by storing autogenerated command permissions as a `commands` list.
- Autogenerated permissions now written to `OUT_DIR` instead of the crate's folder.
- MSRV updated to Rust 1.95.
Breaking Changes
- `tauri-build` no longer copies configured resources to the cargo target directory.
- Plugin and app build scripts now write autogenerated permissions to `OUT_DIR` instead of the crate's `permissions/autogenerated` folder.
New Features
- Added `tauri_utils::acl::build::collect_permission_files` and `define_permissions_from_files` for merging permission files.
- Application manifest gains implicit `allow-*` and `deny-*` permissions.
Full Release Notes
<details>
<summary><em><h4>Cargo Audit</h4></em></summary>
```
Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
Loaded 1243 security advisories (from /home/runner/.cargo/advisory-db)
Updating crates.io index
Scanning Cargo.lock for vulnerabilities (1217 crate dependencies)
Crate: fxhash
Version: 0.2.1
Warning: unmaintained
Title: fxhash - no longer maintained
Date: 2025-09-05
ID: RUSTSEC-2025-0057
URL: https://rustsec.org/advisories/RUSTSEC-2025-0057
Crate: paste
Version: 1.0.15
Warning: unmaintained
Title: paste - no longer maintained
Date: 2024-10-07
ID: RUSTSEC-2024-0436
URL: https://rustsec.org/advisories/RUSTSEC-2024-0436
Crate: rustls-pemfile
Version: 2.2.0
Warning: unmaintained
Title: rustls-pemfile is unmaintained
Date: 2025-11-28
ID: RUSTSEC-2025-0134
URL: https://rustsec.org/advisories/RUSTSEC-2025-0134
Crate: rustybuzz
Version: 0.20.1
Warning: unmaintained
Title: `rustybuzz` is unmaintained
Date: 2026-07-11
ID: RUSTSEC-2026-0206
URL: https://rustsec.org/advisories/RUSTSEC-2026-0206
Crate: ttf-parser
Version: 0.25.1
Warning: unmaintained
Title: `ttf-parser` is unmaintained
Date: 2026-06-28
ID: RUSTSEC-2026-0192
URL: https://rustsec.org/advisories/RUSTSEC-2026-0192
warning: 5 allowed warnings found
```
</details>
## [3.0.0-alpha.0]
### New Features
- [`364a0e711`](https://www.github.com/tauri-apps/tauri/commit/364a0e711d8c1e5f2ad9439feff498055f5065c7) ([#15882](https://www.github.com/tauri-apps/tauri/pull/15882)) `tauri-build` no longer copies the configured resources to the cargo target directory; on desktop, unbundled apps (`tauri dev` / `cargo run`) now resolve resources at runtime from their source paths instead. This means editing a resource file no longer triggers a full application rebuild, and changes to plain relative resources are picked up live by the running app.
- When all configured resources are plain relative paths (e.g. `"assets/*"`), the resource directory resolves to the directory containing `tauri.conf.json` and files are read directly from the sources.
- When resources are remapped (map notation, `../` or absolute paths), the bundle layout is mirrored next to the executable on the first resource directory access of each run.
The `bundle > resources` configuration is now part of the config embedded by `generate_context!`, where it was previously stripped.
### Enhancements
- [`65792f536`](https://www.github.com/tauri-apps/tauri/commit/65792f5364e34daaaf8cd612452f6dc0bc63a2bd) Plugin and app build scripts now write the autogenerated command permissions to `OUT_DIR` instead of the crate's `permissions/autogenerated` folder, so they no longer need to be committed at the crate level. This applies to plugin crates (`tauri-plugin`) and the application manifest (`tauri_build::AppManifest`); inlined plugins (`tauri_build::InlinedPlugin`) already wrote them to `OUT_DIR`. For plugin crates, the human-readable permission documentation (`reference.md`) is still generated in `permissions/autogenerated` so it stays recoverable.
Added `tauri_utils::acl::build::collect_permission_files` and `tauri_utils::acl::build::define_permissions_from_files` to allow merging permission files from multiple directories into a single permission file list.
### Performance Improvements
- [`fb7bdd95b`](https://www.github.com/tauri-apps/tauri/commit/fb7bdd95be319d70a1097d285bb7b170562339f2) Reduce the size of the resolved ACL embedded in the app by storing the autogenerated command permissions as a `commands` list on the plugin/app manifest instead of two explicit permissions (`allow-$command` and `deny-$command`) per command. The `allow-$command`/`deny-$command` permissions are now materialized on demand when resolving the ACL.
The application manifest also gains implicit `allow-*` and `deny-*` permissions that allow or deny **all** of its commands through a single resolved entry, so capabilities no longer need to list every command individually.
### What's Changed
- [`c9277f3c0`](https://www.github.com/tauri-apps/tauri/commit/c9277f3c0c24518a7ab7d7d1f2489e004b1597f7) Set MSRV to 1.95.
- [`19929799f`](https://www.github.com/tauri-apps/tauri/commit/19929799f42398a6e85adb00ae02f2e7fe46d214) First v3 alpha release!
<details>
<summary><em><h4>Cargo Publish</h4></em></summary>
```
Updating crates.io index
Packaging tauri-utils v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-utils)
Updating crates.io index
Packaged 34 files, 626.4KiB (151.8KiB compressed)
Verifying tauri-utils v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-utils)
Downloading crates ...
Downloaded cfb v0.14.0
Downloaded bs58 v0.5.1
Downloaded anyhow v1.0.104
Downloaded darling_macro v0.24.1
Downloaded typeid v1.0.3
Downloaded hex v0.4.3
Downloaded ref-cast v1.0.27
Downloaded siphasher v1.0.3
Downloaded dyn-clone v1.0.20
Downloaded phf_generator v0.13.1
Downloaded phf_shared v0.13.1
Downloaded glob v0.3.4
Downloaded ref-cast-impl v1.0.27
Downloaded erased-serde v0.4.10
Downloaded json-patch v4.2.0
Downloaded phf_macros v0.13.1
Downloaded smallvec v1.16.0
Downloaded infer v0.22.0
Downloaded serde-untagged v0.1.9
Downloaded serde_with_macros v3.23.0
Downloaded iana-time-zone v0.1.65
Downloaded urlpattern v0.6.0
Downloaded web-time v1.1.0
Downloaded phf v0.13.1
Downloaded plist v1.10.1
Downloaded indexmap v1.9.3
Downloaded ctor v1.0.13
Downloaded toml v1.1.5+spec-1.1.0
Downloaded jsonptr v0.7.1
Downloaded darling v0.24.1
Downloaded num-traits v0.2.19
Downloaded uuid v1.26.0
Downloaded schemars v1.2.2
Downloaded schemars v0.9.0
Downloaded hashbrown v0.12.3
Downloaded chrono v0.4.45
Downloaded darling_core v0.24.1
Downloaded jiff-core v0.1.0
Downloaded quick-xml v0.42.0
Downloaded serde_with v3.23.0
Downloaded jiff v0.2.35
Compiling proc-macro2 v1.0.107
Compiling quote v1.0.47
Compiling unicode-ident v1.0.24
Compiling serde_core v1.0.229
Compiling stable_deref_trait v1.2.1
Compiling memchr v2.8.3
Compiling litemap v0.8.3
Compiling writeable v0.6.4
Compiling utf8_iter v1.0.4
Compiling icu_normalizer_data v2.3.0
Compiling syn v3.0.5
Compiling syn v2.0.119
Compiling serde v1.0.229
Compiling icu_properties_data v2.3.0
Compiling smallvec v1.16.0
Compiling ident_case v1.0.1
Compiling zmij v1.0.23
Compiling siphasher v1.0.3
Compiling strsim v0.11.1
Compiling serde_json v1.0.151
Compiling typeid v1.0.3
Compiling itoa v1.0.18
Compiling phf_shared v0.13.1
Compiling aho-corasick v1.1.5
Compiling fastrand v2.5.0
Compiling percent-encoding v2.3.2
Compiling thiserror v2.0.20
Compiling erased-serde v0.4.10
Compiling regex-syntax v0.8.11
Compiling synstructure v0.13.2
Compiling zerovec-derive v0.11.6
Compiling displaydoc v0.2.7
Compiling zerofrom-derive v0.1.7
Compiling yoke-derive v0.8.2
Compiling serde_derive v1.0.229
Compiling darling_core v0.24.1
Compiling zerofrom v0.1.8
Compiling thiserror-impl v2.0.20
Compiling yoke v0.8.3
Compiling zerovec v0.11.8
Compiling tinystr v0.8.4
Compiling icu_locale_core v2.3.0
Compiling potential_utf v0.1.6
Compiling zerotrie v0.2.5
Compiling icu_collections v2.3.0
Compiling icu_provider v2.3.1
Compiling icu_properties v2.3.0
Compiling icu_normalizer v2.3.0
Compiling darling_macro v0.24.1
Compiling darling v0.24.1
Compiling regex-automata v0.4.18
Compiling form_urlencoded v1.2.2
Compiling phf_generator v0.13.1
Compiling uuid v1.26.0
Compiling idna_adapter v1.2.2
Compiling idna v1.1.0
Compiling winnow v1.0.4
Compiling hashbrown v0.17.1
Compiling fnv v1.0.7
Compiling powerfmt v0.2.0
Compiling web-time v1.1.0
Compiling equivalent v1.0.2
Compiling deranged v0.5.8
Compiling time-core v0.1.9
Compiling num-conv v0.2.2
Compiling anyhow v1.0.104
Compiling indexmap v2.14.2
Compiling regex v1.13.1
Compiling cfb v0.14.0
Compiling toml_parser v1.1.3+spec-1.1.0
Compiling time v0.3.55
Compiling url v2.5.8
Compiling jsonptr v0.7.1
Compiling phf_macros v0.13.1
Compiling serde_with_macros v3.23.0
Compiling toml_datetime v1.1.1+spec-1.1.0
Compiling serde_spanned v1.1.1
Compiling quick-xml v0.42.0
Compiling bytes v1.12.1
Compiling base64 v0.23.1
Compiling toml_writer v1.1.2+spec-1.1.0
Compiling toml v1.1.5+spec-1.1.0
Compiling http v1.5.0
Compiling plist v1.10.1
Compiling serde_with v3.23.0
Compiling phf v0.13.1
Compiling serde-untagged v0.1.9
Compiling json-patch v4.2.0
Compiling urlpattern v0.6.0
Compiling infer v0.22.0
Compiling glob v0.3.4
Compiling log v0.4.34
Compiling semver v1.0.28
Compiling dunce v1.0.5
Compiling ctor v1.0.13
Compiling tauri-utils v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/target/package/tauri-utils-3.0.0-alpha.0)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.49s
Uploading tauri-utils v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-utils)
Uploaded tauri-utils v3.0.0-alpha.0 to registry `crates-io`
note: waiting for tauri-utils v3.0.0-alpha.0 to be available at registry `crates-io`
help: you may press ctrl-c to skip waiting; the crate should be available shortly
Published tauri-utils v3.0.0-alpha.0 at registry `crates-io`
```
</details>
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one