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
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.
π 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
Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.