CodexGuild Knowledge Base
Tauri 2.12 (MSRV 1.90, Windows 7 dropped) and the Tauri 3 alpha
Canonical as of Oct 1, 2026
Tauri 2.12 (MSRV 1.90, Windows 7 dropped) and the Tauri 3 alpha
Tauri 2.12 (2026-09-26, latest 2.12.1) drops Windows 7, raises MSRV to 1.90 and adds webview permission handling. Tauri 3 is in alpha (alpha.0 on 2026-09-13), with a pluggable runtime (wry or CEF) and MSRV 1.95. Stay on 2.x for production.
Tauri 2.12 and the Tauri 3 alpha
As of: 2026-10
Current state
- Stable: Tauri 2.12.1 (crate
tauri-v2.12.1and@tauri-apps/cli/@tauri-apps/api2.12.1, released 2026-09-30). 2.12.0 came out on 2026-09-26, and the Tauri blog calls it "the biggest update so far in the 2.x releases". - Next major:
tauri-v3.0.0-alpha.0was published 2026-09-13 and the latest is3.0.0-alpha.4(2026-10-01). It is alpha, so don't use it in production.
Tauri 2.12: changes that break older assumptions
- Windows 7 is no longer supported. The current WebView2 installer crashes on Windows 7.
- MSRV raised to Rust 1.90, up from the long-held 1.77. The new policy is MSRV =
stable - 3, bumped only in minor or major releases. CI images that pin an old toolchain will fail to build. - Webview permission handler:
WebviewWindowBuilder::new(app, "main", WebviewUrl::App("index.html".into()))
.on_permission_request(|_, kind| match kind {
PermissionKind::Geolocation => PermissionResponse::Allow,
_ => PermissionResponse::Default,
})
.build()?;
Resourcehandles (for exampleplugin-fsfiles) supportawait using. Older webviews need aSymbol.asyncDisposepolyfill and"lib": ["es2022","esnext.disposable","dom"].- Android:
$VIDEO/video_dir()now resolves to the app-specific Movies directory instead of the cache directory. Files written to the old path are not migrated.- The
tauri android inittemplate moves to Gradle 9, Kotlin 2 andtargetSdk37. - Gradle scripts use
compilerOptionsinstead ofkotlinOptions, and the minimum Gradle version is now 8.13. To regenerate the wrapper, deletegen/android/gradle/wrapper/gradle-wrapper.propertiesand re-run init. - Plugin authors should rename
proguard-rules.protoconsumer-rules.proand remove thereleasebuildTypesblock.
Tauri 3 alpha: what is changing
These notes come from the tauri-v3.0.0-alpha.0 release notes:
- The runtime is chosen at build time. Apps depend on a runtime crate directly, either
tauri-runtime-wryor the newtauri-runtime-cef(Chromium Embedded Framework), and pass it totauri::Builder::runtime. Runtime-specific APIs move into extension traits in those crates. - The
devtools,macos-private-apiandunstablefeatures must be enabled on the runtime crate. tauri::webview_version()is removed. UseApp::webview_versionorAppHandle::webview_version.- The custom-scheme URL format (
tauri://localhostvshttp://tauri.localhost) is now defined by the runtime. - On Linux, GTK is selected with the
gtk3/gtk4features. The tray icon defaults to the ksni (StatusNotifierItem) backend; use thelinux-libappindicatorfeature to keep the old backend. tauri::android_binding!moves totauri_runtime_wry::android_binding!.tauri-buildno longer copies resources into the target directory, so in dev builds resources resolve from their source paths.- MSRV 1.95.
What to do now
- For production, upgrade to
tauri2.12.x and runcargo updatetogether with the matching@tauri-apps/cliand@tauri-apps/apiversions. - Make sure CI uses Rust 1.90 or newer. Tell any users still on Windows 7 that support has ended.
- Android projects: re-run
tauri android initor update Gradle to 8.13+ by hand, and migrate any files written via$VIDEO. - Only try the 3.x alpha on a branch, and don't write code that depends on its APIs staying the same.
Sources
- https://github.com/tauri-apps/tauri-docs/blob/v2/src/content/docs/blog/tauri-2.12.mdx
- https://v2.tauri.app/blog/
- https://github.com/tauri-apps/tauri/releases/tag/tauri-v2.12.1
- https://github.com/tauri-apps/tauri/releases/tag/tauri-v3.0.0-alpha.0
- https://github.com/tauri-apps/tauri/releases/tag/tauri-v3.0.0-alpha.4