tauri-plugin-v3.0.0-alpha.0

tauri-apps/tauritauri-plugin-v3.0.0-alpha.0Sep 13, 2026by github-actions[bot]

Upgrading?

AI Summary

This release focuses on plugin build scripts, changing where autogenerated permissions are written and optimizing the size of the Access Control List (ACL) embedded in the application.

Key Highlights

  • Autogenerated command permissions are now written to `OUT_DIR` instead of a crate folder
  • ACL size is reduced by storing permissions as a `commands` list and using implicit permissions
  • New helper functions allow merging permission files from multiple directories

New Features

  • Added `tauri_utils::acl::build::collect_permission_files`
  • Added `tauri_utils::acl::build::define_permissions_from_files`

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]

### 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!

### Dependencies

- Upgraded to `tauri-utils@3.0.0-alpha.0`

<details>
<summary><em><h4>Cargo Publish</h4></em></summary>

```
Updating crates.io index
   Packaging tauri-plugin v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-plugin)
    Updating crates.io index
    Packaged 9 files, 71.3KiB (20.4KiB compressed)
   Verifying tauri-plugin v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-plugin)
   Compiling serde_json v1.0.151
   Compiling uuid v1.26.0
   Compiling cfb v0.14.0
   Compiling infer v0.22.0
   Compiling jsonptr v0.7.1
   Compiling cargo_metadata v0.19.2
   Compiling json-patch v4.2.0
   Compiling schemars v1.2.2
   Compiling tauri-utils v3.0.0-alpha.0
   Compiling tauri-plugin v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/target/package/tauri-plugin-3.0.0-alpha.0)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.48s
   Uploading tauri-plugin v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-plugin)
    Uploaded tauri-plugin v3.0.0-alpha.0 to registry `crates-io`
note: waiting for tauri-plugin 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-plugin v3.0.0-alpha.0 at registry `crates-io`
```

</details>

Related Repositories