tauri-runtime-wry-v3.0.0-alpha.0

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

Upgrading?

AI Summary

This release updates the Wry runtime for Tauri v3, introducing Android binding support, raw pointer handling for GTK to support multiple versions, and renaming the runtime type.

Key Highlights

  • Android binding macro moved to `tauri_runtime_wry` for mobile apps
  • GTK types are now raw pointers (`*mut c_void`) to support version-agnostic builds
  • The `Wry<T>` runtime type was renamed to `WryRuntime<T>`
  • Extension traits provide access to runtime-specific configuration

Breaking Changes

  • The `tauri::android_binding!` macro moved to `tauri_runtime_wry::android_binding!`
  • Runtime-specific APIs are now accessed via extension traits
  • GTK types crossing the runtime boundary are now raw pointers with specific transfer semantics
  • The `Wry` type was renamed to `WryRuntime`
  • The `WebviewAttribute` enum was replaced by `WryWebviewAttributes` struct

New Features

  • Android binding macros exposed for mobile entry points
  • Extension traits provide `create_tao_window`, `wry_plugin`, and other runtime-specific methods

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

- [`1e5ba7b53`](https://www.github.com/tauri-apps/tauri/commit/1e5ba7b53dfb3da97f372b646f15853e5ba0e1a8) ([#15985](https://www.github.com/tauri-apps/tauri/pull/15985)) The `tauri::android_binding!` macro moved to `tauri_runtime_wry::android_binding!`, and `#[tauri::mobile_entry_point]` expands to it, so Android apps must depend on `tauri-runtime-wry`. `tauri::handle_android_plugin_response` and `tauri::send_channel_data` are exposed on Android for other runtimes to implement their own binding.

### 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@3.0.0-alpha.0`
- Upgraded to `tauri-utils@3.0.0-alpha.0`
- Upgraded to `tauri-runtime@3.0.0-alpha.0`

### Breaking Changes

- [`1e5ba7b53`](https://www.github.com/tauri-apps/tauri/commit/1e5ba7b53dfb3da97f372b646f15853e5ba0e1a8) ([#15985](https://www.github.com/tauri-apps/tauri/pull/15985)) The `devtools`, `macos-private-api` and `unstable` features must now be enabled on the runtime crate (`tauri-runtime-wry` or `tauri-runtime-cef`), which also enables them on `tauri`. Enabling them on `tauri` alone no longer enables them on the runtime.
- [`1e5ba7b53`](https://www.github.com/tauri-apps/tauri/commit/1e5ba7b53dfb3da97f372b646f15853e5ba0e1a8) ([#15985](https://www.github.com/tauri-apps/tauri/pull/15985)) Runtime-specific APIs moved from the `tauri` crate to extension traits in the runtime crates, which now depend on `tauri`:
    
    - `tauri_runtime_wry::{AppHandleWryExt, AppWryExt, WebviewWryExt, WebviewWindowBuilderWryExt, WebviewBuilderWryExt}` provide `create_tao_window`, `send_tao_window_event`, `wry_plugin`, `with_wry_webview`, `with_environment`, `with_related_view` and `with_webview_configuration`.
    - `tauri_runtime_cef::{WebviewCefExt, WebviewWindowBuilderCefExt, WebviewBuilderCefExt}` provide `send_dev_tools_message`, `on_dev_tools_protocol` and `browser_runtime_style`.
    - The traits are implemented both for the concrete runtime and for `tauri::DynRuntime`, returning `tauri_runtime::Error::RuntimeTypeMismatch` when the app runs on a different runtime.
    - The `tauri::tao` and `tauri::wry` re-exports were removed, use `tauri_runtime_wry::{tao, wry}`.
    - `tauri::webview::PlatformWebview::downcast_ref` was added to reach the runtime's webview type from `with_webview`, whatever the runtime generic in use.
- [`c8c75b1f7`](https://www.github.com/tauri-apps/tauri/commit/c8c75b1f7f43e7cb1e7d773ed2f6f96fad2fe975) ([#15787](https://www.github.com/tauri-apps/tauri/pull/15787)) The GTK types crossing the runtime boundary are now version-agnostic raw pointers, so a runtime can use a GTK version different from the one the `tauri` crate was built with:
    
    - `WindowDispatch::gtk_window` and `WindowDispatch::default_vbox` return `*mut c_void` (`GtkApplicationWindow*` / `GtkBox*`) instead of `gtk::ApplicationWindow` / `gtk::Box`. Both are *transfer full*: the implementation hands out a strong reference (glib's `to_glib_full`) and the caller releases it (`from_glib_full`).
    - `WindowBuilder::transient_for` takes the parent as `*mut c_void` (`GtkWindow*`), also *transfer full*: the implementation must release the reference, including when it does not support transient windows.
    - `RawWindow::gtk_window` and `RawWindow::default_vbox` are `*mut c_void` as well, but *transfer none*: they are borrowed for the duration of the callback and must be wrapped with `from_glib_none`.
    - `tauri_runtime_wry::GtkWindow` and `tauri_runtime_wry::GtkBox` are newtypes over `*mut c_void`.
    
    `tauri-runtime` no longer depends on the `gtk` crate.
    
    The new `tauri_runtime::gtk` module carries the GTK version a runtime binds to: runtimes call `gtk::declare_version` before creating windows so `tauri`, which picks its bindings at compile time, can detect a mismatch instead of reinterpreting a GTK object of the other version.
- [`1e5ba7b53`](https://www.github.com/tauri-apps/tauri/commit/1e5ba7b53dfb3da97f372b646f15853e5ba0e1a8) ([#15985](https://www.github.com/tauri-apps/tauri/pull/15985)) The `Wry<T>` runtime type was renamed to `WryRuntime<T>` (defaulting to `tauri::EventLoopMessage`), and `Wry` is now the unit-like attributes type that selects the runtime, e.g. `tauri::Builder::default().runtime(tauri_runtime_wry::Wry::default())`. `WryHandle::plugin` now takes `&self`.
- [`1e5ba7b53`](https://www.github.com/tauri-apps/tauri/commit/1e5ba7b53dfb3da97f372b646f15853e5ba0e1a8) ([#15985](https://www.github.com/tauri-apps/tauri/pull/15985)) The `WebviewAttribute` enum was replaced by the `WryWebviewAttributes` struct, with the `environment` (Windows), `related_view` (Linux) and `webview_configuration` (macOS) fields. The `AsWryWebviewAttributes` trait gives the `WebviewWindowBuilderWryExt` and `WebviewBuilderWryExt` extension traits access to it on both `WryRuntime` and `tauri::DynRuntime`.

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

```
Updating crates.io index
   Packaging tauri-runtime-wry v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-runtime-wry)
    Updating crates.io index
    Packaged 24 files, 350.0KiB (79.3KiB compressed)
   Verifying tauri-runtime-wry v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-runtime-wry)
 Downloading crates ...
  Downloaded atk v0.18.2
  Downloaded cairo-rs v0.18.5
  Downloaded dlopen2 v0.8.2
  Downloaded cairo-sys-rs v0.18.2
  Downloaded gtk3-macros v0.18.2
  Downloaded cfg-expr v0.15.8
  Downloaded gdkx11-sys v0.18.2
  Downloaded gio-sys v0.18.1
  Downloaded gdk-pixbuf-sys v0.18.0
  Downloaded gio v0.18.4
  Downloaded heck v0.4.1
  Downloaded glib-macros v0.18.5
  Downloaded gtk-sys v0.18.2
  Downloaded atk-sys v0.18.2
  Downloaded dbus v0.9.12
  Downloaded gobject-sys v0.18.0
  Downloaded gdk-pixbuf v0.18.5
  Downloaded gdk v0.18.2
  Downloaded gdkx11 v0.18.2
  Downloaded gtk v0.18.2
  Downloaded javascriptcore-rs-sys v1.1.1
  Downloaded dlopen2_derive v0.4.3
  Downloaded field-offset v0.3.6
  Downloaded glib v0.18.5
  Downloaded futures-executor v0.3.34
  Downloaded gdk-sys v0.18.2
  Downloaded proc-macro-error-attr v1.0.4
  Downloaded memoffset v0.9.1
  Downloaded gdkwayland-sys v0.18.2
  Downloaded javascriptcore-rs v1.1.2
  Downloaded pango-sys v0.18.0
  Downloaded proc-macro-crate v2.0.2
  Downloaded serde_spanned v0.6.9
  Downloaded soup3-sys v0.5.0
  Downloaded thiserror v1.0.69
  Downloaded thiserror-impl v1.0.69
  Downloaded libdbus-sys v0.2.7
  Downloaded soup3 v0.5.0
  Downloaded proc-macro-crate v1.3.1
  Downloaded glib-sys v0.18.1
  Downloaded proc-macro-error v1.0.4
  Downloaded pango v0.18.3
  Downloaded toml_edit v0.20.2
  Downloaded toml_datetime v0.6.3
  Downloaded winnow v0.5.40
  Downloaded toml v0.8.2
  Downloaded system-deps v6.2.2
  Downloaded toml_edit v0.19.15
  Downloaded syn v1.0.109
  Downloaded tao v0.37.0
  Downloaded target-lexicon v0.12.16
  Downloaded x11 v2.21.0
  Downloaded wry v0.56.1
  Downloaded webkit2gtk v2.0.2
  Downloaded x11-dl v2.21.0
  Downloaded version-compare v0.2.1
  Downloaded webkit2gtk-sys v2.0.2
  Downloaded tauri v3.0.0-alpha.0
   Compiling pkg-config v0.3.34
   Compiling winnow v0.5.40
   Compiling toml_datetime v0.6.3
   Compiling serde_spanned v0.6.9
   Compiling target-lexicon v0.12.16
   Compiling version-compare v0.2.1
   Compiling smallvec v1.16.0
   Compiling futures-macro v0.3.34
   Compiling slab v0.4.12
   Compiling futures-task v0.3.34
   Compiling cfg-expr v0.15.8
   Compiling proc-macro-error-attr v1.0.4
   Compiling syn v1.0.109
   Compiling proc-macro-error v1.0.4
   Compiling futures-util v0.3.34
   Compiling thiserror v1.0.69
   Compiling toml_edit v0.20.2
   Compiling thiserror-impl v1.0.69
   Compiling heck v0.4.1
   Compiling parking_lot_core v0.9.12
   Compiling parking_lot v0.12.5
   Compiling gio v0.18.4
   Compiling string_cache v0.9.0
   Compiling futures-executor v0.3.34
   Compiling futures-io v0.3.34
   Compiling web_atoms v0.2.6
   Compiling icu_normalizer v2.3.0
   Compiling autocfg v1.5.1
   Compiling memoffset v0.9.1
   Compiling toml v0.8.2
   Compiling proc-macro-crate v2.0.2
   Compiling markup5ever v0.39.0
   Compiling html5ever v0.39.0
   Compiling system-deps v6.2.2
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling dom_query v0.28.0
   Compiling glib-sys v0.18.1
   Compiling gobject-sys v0.18.0
   Compiling gio-sys v0.18.1
   Compiling gdk-sys v0.18.2
   Compiling gdk-pixbuf-sys v0.18.0
   Compiling cairo-sys-rs v0.18.2
   Compiling pango-sys v0.18.0
   Compiling glib-macros v0.18.5
   Compiling atk-sys v0.18.2
   Compiling gtk-sys v0.18.2
   Compiling field-offset v0.3.6
   Compiling toml_edit v0.19.15
   Compiling tauri-utils v3.0.0-alpha.0
   Compiling glib v0.18.5
   Compiling proc-macro-crate v1.3.1
   Compiling url v2.5.8
   Compiling gtk v0.18.2
   Compiling gtk3-macros v0.18.2
   Compiling javascriptcore-rs-sys v1.1.1
   Compiling soup3-sys v0.5.0
   Compiling x11 v2.21.0
   Compiling webkit2gtk-sys v2.0.2
   Compiling gdkx11-sys v0.18.2
   Compiling png v0.17.16
   Compiling libdbus-sys v0.2.7
   Compiling x11-dl v2.21.0
   Compiling hyper v1.11.1
   Compiling ico v0.5.0
   Compiling tower v0.5.3
   Compiling urlpattern v0.6.0
   Compiling muda v0.20.0
   Compiling hyper-util v0.1.20
   Compiling cairo-rs v0.18.5
   Compiling atk v0.18.2
   Compiling tauri-build v3.0.0-alpha.0
   Compiling tauri-codegen v3.0.0-alpha.0
   Compiling javascriptcore-rs v1.1.2
   Compiling tower-http v0.6.11
   Compiling tauri v3.0.0-alpha.0
   Compiling dlopen2_derive v0.4.3
   Compiling wry v0.56.1
   Compiling dlopen2 v0.8.2
   Compiling tauri-runtime v3.0.0-alpha.0
   Compiling tauri-macros v3.0.0-alpha.0
   Compiling reqwest v0.13.4
   Compiling gdk-pixbuf v0.18.5
   Compiling pango v0.18.3
   Compiling soup3 v0.5.0
   Compiling gdk v0.18.2
   Compiling dbus v0.9.12
   Compiling gdkwayland-sys v0.18.2
   Compiling tauri-runtime-wry v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/target/package/tauri-runtime-wry-3.0.0-alpha.0)
   Compiling gdkx11 v0.18.2
   Compiling webkit2gtk v2.0.2
   Compiling tao v0.37.0
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.50s
   Uploading tauri-runtime-wry v3.0.0-alpha.0 (/home/runner/work/tauri/tauri/crates/tauri-runtime-wry)
    Uploaded tauri-runtime-wry v3.0.0-alpha.0 to registry `crates-io`
note: waiting for tauri-runtime-wry 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-runtime-wry v3.0.0-alpha.0 at registry `crates-io`
```

</details>

Related Repositories