https://v2.tauri.app/blog/tauri-2-0-0-release-candidate/ Skip to content [logo] [logo_light] Tauri [Menu ] Search Cancel Guides References Blog Releases GitHub Discord Twitter Mastodon RSS Select language [English ] * Guides * References * Blog * Quick Start + What is Tauri? + Prerequisites + Create a Project + Frontend Configuration o Overview o Leptos o Next.js o Nuxt o Qwik o SvelteKit o Sycamore Stub o Trunk o Vite Stub o Webpack Stub o Yew Stub + Upgrade & Migrate o Overview o Migrate from Electron Stub o Upgrade from Tauri 1.0 o Upgrade from Tauri 2.0 Beta * Core Concepts + Overview + Tauri Architecture WIP + Process Model WIP + Rendering WIP + App Size WIP + Inter-Process Communication o Overview WIP o Brownfield Pattern WIP o Isolation Pattern WIP * Security + Overview + Permissions + Command Scopes + Capabilities + Runtime Authority WIP + Content Security Policy (CSP) + Tauri Ecosystem Security + Application Lifecycle Threats + Future Work * Develop + Overview + Calling the Frontend from Rust + Calling Rust from the Frontend WIP + Configuration Files + Embedding Additional Files + Embedding External Binaries + State Management + Updating Dependencies + Debug o Overview o CrabNebula DevTools New o Debug in JetBrains IDEs o Debug in VS Code + Plugins o Overview o Mobile Plugin Development + Tests o Overview Stub o Mock Tauri APIs o Pipelines # Overview Stub # GitHub Stub # GitLab Stub o WebDriver # Overview Broken # Continuous Integration Broken # Example @ Setup Broken @ Selenium Broken @ WebdriverIO Broken * Distribute + Overview WIP + Android APK/AAB Signing + App Store Stub + AUR + Debian Stub + Flathub + Play Store Stub + RPM + Snapcraft + Steam Stub + Pipelines o Overview Stub o CrabNebula Cloud o GitHub o GitLab Stub * Learn + Overview Stub + Node.js as a sidecar Stub + Python as a sidecar Stub + Splashscreen + Custom Tokio runtime Stub + Security o Using Plugin Permissions o Capabilities for Different Windows and Platforms o Writing Plugin Permissions * Plugins + Overview + Autostart WIP + Barcode Scanner New + Biometric WIP + Command Line Interface (CLI) WIP + Clipboard WIP + Deep Linking New + Dialog + File System WIP + Global Shortcut WIP + HTTP Client WIP + Localhost WIP + Logging WIP + NFC WIP + Notifications + OS Information WIP + Persisted Scope WIP + Positioner WIP + Process WIP + Shell WIP + Single Instance WIP + SQL WIP + Store + Stronghold WIP + Updater WIP + Upload WIP + Websocket WIP + Window Customization WIP + Window State WIP * About + About Tauri + The Tauri Book + Tauri Governance + Tauri Philosophy + Trademark Guidelines GitHub Discord Twitter Mastodon RSS Select language [English ] * Security + Capability + Permission + Scope * Command Line Interface * Configuration * Environment Variables * Webview Versions * Releases + Overview + @tauri-apps o api # 2.0.0-rc.0 # 2.0.0-beta.16 # 2.0.0-beta.15 # 2.0.0-beta.14 # 2.0.0-beta.13 # 2.0.0-beta.12 # 2.0.0-beta.11 # 2.0.0-beta.10 # 2.0.0-beta.9 # 2.0.0-beta.8 # 2.0.0-beta.7 # 2.0.0-beta.6 # 2.0.0-beta.5 # 2.0.0-beta.4 # 2.0.0-beta.3 # 2.0.0-beta.2 # 2.0.0-beta.1 # 2.0.0-beta.0 # 2.0.0-alpha.14 # 2.0.0-alpha.13 # 2.0.0-alpha.12 # 2.0.0-alpha.11 # 2.0.0-alpha.10 # 2.0.0-alpha.9 # 2.0.0-alpha.8 # 2.0.0-alpha.7 # 2.0.0-alpha.6 # 2.0.0-alpha.5 # 2.0.0-alpha.4 # 2.0.0-alpha.3 # 2.0.0-alpha.2 # 2.0.0-alpha.1 # 2.0.0-alpha.0 # 1.5.3 # 1.5.2 # 1.5.1 # 1.5.0 # 1.4.0 # 1.3.0 # 1.2.0 # 1.1.0 # 1.0.0-rc.7 # 1.0.0-rc.6 # 1.0.0-rc.5 # 1.0.0-rc.4 # 1.0.0-rc.3 # 1.0.0-rc.2 # 1.0.0-rc.1 # 1.0.0-rc.0 # 1.0.2 # 1.0.1 # 1.0.0-beta.8 # 1.0.0-beta.7 # 1.0.0-beta.6 # 1.0.0-beta.5 # 1.0.0-beta.4 # 1.0.0-beta.3 # 1.0.0-beta.2 # 1.0.0-beta.1 # 1.0.0-beta-rc.0 # 1.0.0-beta-rc.1 # 1.0.0-beta-rc.2 # 1.0.0-beta-rc.3 # 1.0.0-beta.0 # 1.0.0 o cli # 2.0.0-rc.0 # 2.0.0-beta.23 # 2.0.0-beta.22 # 2.0.0-beta.21 # 2.0.0-beta.20 # 2.0.0-beta.19 # 2.0.0-beta.18 # 2.0.0-beta.17 # 2.0.0-beta.16 # 2.0.0-beta.15 # 2.0.0-beta.14 # 2.0.0-beta.13 # 2.0.0-beta.12 # 2.0.0-beta.11 # 2.0.0-beta.10 # 2.0.0-beta.9 # 2.0.0-beta.8 # 2.0.0-beta.7 # 2.0.0-beta.6 # 2.0.0-beta.5 # 2.0.0-beta.4 # 2.0.0-beta.3 # 2.0.0-beta.2 # 2.0.0-beta.1 # 2.0.0-beta.0 # 2.0.0-alpha.21 # 2.0.0-alpha.20 # 2.0.0-alpha.19 # 2.0.0-alpha.18 # 2.0.0-alpha.17 # 2.0.0-alpha.16 # 2.0.0-alpha.15 # 2.0.0-alpha.14 # 2.0.0-alpha.13 # 2.0.0-alpha.12 # 2.0.0-alpha.11 # 2.0.0-alpha.10 # 2.0.0-alpha.9 # 2.0.0-alpha.8 # 2.0.0-alpha.7 # 2.0.0-alpha.6 # 2.0.0-alpha.5 # 2.0.0-alpha.4 # 2.0.0-alpha.3 # 2.0.0-alpha.2 # 2.0.0-alpha.1 # 2.0.0-alpha.0 # 1.5.11 # 1.5.10 # 1.5.9 # 1.5.8 # 1.5.7 # 1.5.6 # 1.5.5 # 1.5.4 # 1.5.3 # 1.5.2 # 1.5.1 # 1.5.0 # 1.4.0 # 1.3.1 # 1.3.0 # 1.2.3 # 1.2.2 # 1.2.1 # 1.2.0 # 1.1.1 # 1.1.0 # 1.0.0-rc.16 # 1.0.0-rc.15 # 1.0.0-rc.14 # 1.0.0-rc.13 # 1.0.0-rc.12 # 1.0.0-rc.11 # 1.0.0-rc.10 # 1.0.0-rc.9 # 1.0.0-rc.8 # 1.0.0-rc.6 # 1.0.0-rc.5 # 1.0.0-rc.4 # 1.0.0-rc.3 # 1.0.0-rc.2 # 1.0.0-rc.1 # 1.0.0-rc.0 # 1.0.5 # 1.0.4 # 1.0.3 # 1.0.2 # 1.0.1 # 1.0.0 + tauri o 2.0.0-rc.0 o 2.0.0-beta.25 o 2.0.0-beta.24 o 2.0.0-beta.23 o 2.0.0-beta.22 o 2.0.0-beta.21 o 2.0.0-beta.20 o 2.0.0-beta.19 o 2.0.0-beta.18 o 2.0.0-beta.17 o 2.0.0-beta.16 o 2.0.0-beta.15 o 2.0.0-beta.14 o 2.0.0-beta.13 o 2.0.0-beta.12 o 2.0.0-beta.11 o 2.0.0-beta.10 o 2.0.0-beta.9 o 2.0.0-beta.8 o 2.0.0-beta.7 o 2.0.0-beta.6 o 2.0.0-beta.5 o 2.0.0-beta.4 o 2.0.0-beta.3 o 2.0.0-beta.2 o 2.0.0-beta.1 o 2.0.0-beta.0 o 2.0.0-alpha.21 o 2.0.0-alpha.20 o 2.0.0-alpha.19 o 2.0.0-alpha.18 o 2.0.0-alpha.17 o 2.0.0-alpha.16 o 2.0.0-alpha.15 o 2.0.0-alpha.14 o 2.0.0-alpha.13 o 2.0.0-alpha.12 o 2.0.0-alpha.11 o 2.0.0-alpha.10 o 2.0.0-alpha.9 o 2.0.0-alpha.8 o 2.0.0-alpha.7 o 2.0.0-alpha.6 o 2.0.0-alpha.5 o 2.0.0-alpha.4 o 2.0.0-alpha.3 o 2.0.0-alpha.2 o 2.0.0-alpha.1 o 2.0.0-alpha.0 o 1.6.0 o 1.5.4 o 1.5.3 o 1.5.2 o 1.5.1 o 1.5.0 o 1.4.1 o 1.4.0 o 1.3.0 o 1.2.5 o 1.2.4 o 1.2.3 o 1.2.2 o 1.2.1 o 1.2.0 o 1.1.4 o 1.1.3 o 1.1.2 o 1.1.1 o 1.1.0 o 1.0.0-rc.17 o 1.0.0-rc.16 o 1.0.0-rc.15 o 1.0.0-rc.14 o 1.0.0-rc.13 o 1.0.0-rc.12 o 1.0.0-rc.11 o 1.0.0-rc.10 o 1.0.0-rc.9 o 1.0.0-rc.8 o 1.0.0-rc.7 o 1.0.0-rc.6 o 1.0.0-rc.5 o 1.0.0-rc.4 o 1.0.0-rc.3 o 1.0.0-rc.2 o 1.0.0-rc.1 o 1.0.0-rc.0 o 1.0.9 o 1.0.8 o 1.0.7 o 1.0.6 o 1.0.5 o 1.0.4 o 1.0.3 o 1.0.2 o 1.0.1 o 1.0.0-beta.8 o 1.0.0-beta.7 o 1.0.0-beta.6 o 1.0.0-beta.5 o 1.0.0-beta.4 o 1.0.0-beta.3 o 1.0.0-beta.2 o 1.0.0-beta.1 o 1.0.0-beta-rc.0 o 1.0.0-beta-rc.1 o 1.0.0-beta-rc.2 o 1.0.0-beta-rc.3 o 1.0.0-beta-rc.4 o 1.0.0-beta.0 o 1.0.0 o 0.11.1 o 0.11.0 o 0.10.0 o 0.9.2 o 0.9.1 o 0.9.0 o 0.8.0 o 0.7.5 o 0.7.4 o 0.7.3 o 0.7.2 o 0.7.1 o 0.7.0 o 0.6.2 o 0.6.0 + tauri-bundler o 2.0.0-rc.0 o 2.0.1-beta.19 o 2.0.1-beta.18 o 2.0.1-beta.17 o 2.0.1-beta.16 o 2.0.1-beta.15 o 2.0.1-beta.14 o 2.0.1-beta.13 o 2.0.1-beta.12 o 2.0.1-beta.11 o 2.0.1-beta.10 o 2.0.1-beta.9 o 2.0.1-beta.8 o 2.0.1-beta.7 o 2.0.1-beta.6 o 2.0.1-beta.5 o 2.0.1-beta.4 o 2.0.1-beta.3 o 2.0.1-beta.2 o 2.0.1-beta.1 o 2.0.1-beta.0 o 2.0.0-beta.3 o 2.0.0-beta.2 o 2.0.0-beta.1 o 2.0.0-beta.0 o 2.0.0-alpha.14 o 2.0.0-alpha.13 o 2.0.0-alpha.12 o 2.0.0-alpha.11 o 2.0.0-alpha.10 o 2.0.0-alpha.9 o 2.0.0-alpha.8 o 2.0.0-alpha.7 o 2.0.0-alpha.6 o 2.0.0-alpha.5 o 2.0.0-alpha.4 o 2.0.0-alpha.3 o 2.0.0-alpha.2 o 2.0.0-alpha.1 o 2.0.0-alpha.0 o 1.5.1 o 1.5.0 o 1.4.8 o 1.4.7 o 1.4.6 o 1.4.5 o 1.4.4 o 1.4.3 o 1.4.2 o 1.4.1 o 1.4.0 o 1.3.0 o 1.2.1 o 1.2.0 o 1.1.2 o 1.1.1 o 1.1.0 o 1.0.0-rc.10 o 1.0.0-rc.9 o 1.0.0-rc.8 o 1.0.0-rc.7 o 1.0.0-rc.6 o 1.0.0-rc.5 o 1.0.0-rc.4 o 1.0.0-rc.3 o 1.0.0-rc.2 o 1.0.0-rc.1 o 1.0.0-rc.0 o 1.0.7 o 1.0.6 o 1.0.5 o 1.0.4 o 1.0.3 o 1.0.2 o 1.0.1 o 1.0.0-beta.4 o 1.0.0-beta.3 o 1.0.0-beta.2 o 1.0.0-beta.1 o 1.0.0-beta-rc.0 o 1.0.0-beta-rc.1 o 1.0.0-beta.0 o 1.0.0 o 0.9.4 o 0.9.3 o 0.9.2 o 0.9.1 o 0.9.0 o 0.8.5 o 0.8.4 o 0.8.3 o 0.8.2 o 0.8.1 o 0.8.0 o 0.7.0 + tauri-cli o 2.0.0-rc.0 o 2.0.0-beta.23 o 2.0.0-beta.22 o 2.0.0-beta.21 o 2.0.0-beta.20 o 2.0.0-beta.19 o 2.0.0-beta.18 o 2.0.0-beta.17 o 2.0.0-beta.16 o 2.0.0-beta.15 o 2.0.0-beta.14 o 2.0.0-beta.13 o 2.0.0-beta.12 o 2.0.0-beta.11 o 2.0.0-beta.10 o 2.0.0-beta.9 o 2.0.0-beta.8 o 2.0.0-beta.7 o 2.0.0-beta.6 o 2.0.0-beta.5 o 2.0.0-beta.4 o 2.0.0-beta.3 o 2.0.0-beta.2 o 2.0.0-beta.1 o 2.0.0-beta.0 o 2.0.0-alpha.21 o 2.0.0-alpha.20 o 2.0.0-alpha.19 o 2.0.0-alpha.18 o 2.0.0-alpha.17 o 2.0.0-alpha.16 o 2.0.0-alpha.15 o 2.0.0-alpha.14 o 2.0.0-alpha.13 o 2.0.0-alpha.12 o 2.0.0-alpha.11 o 2.0.0-alpha.10 o 2.0.0-alpha.9 o 2.0.0-alpha.8 o 2.0.0-alpha.7 o 2.0.0-alpha.6 o 2.0.0-alpha.5 o 2.0.0-alpha.4 o 2.0.0-alpha.3 o 2.0.0-alpha.2 o 2.0.0-alpha.1 o 2.0.0-alpha.0 o 1.5.11 o 1.5.10 o 1.5.9 o 1.5.8 o 1.5.7 o 1.5.6 o 1.5.5 o 1.5.4 o 1.5.3 o 1.5.2 o 1.5.1 o 1.5.0 o 1.4.0 o 1.3.1 o 1.3.0 o 1.2.3 o 1.2.2 o 1.2.1 o 1.2.0 o 1.1.1 o 1.1.0 o 1.0.0-rc.16 o 1.0.0-rc.15 o 1.0.0-rc.14 o 1.0.0-rc.13 o 1.0.0-rc.12 o 1.0.0-rc.11 o 1.0.0-rc.10 o 1.0.0-rc.9 o 1.0.0-rc.8 o 1.0.0-rc.7 o 1.0.0-rc.6 o 1.0.0-rc.5 o 1.0.0-rc.4 o 1.0.0-rc.3 o 1.0.0-rc.2 o 1.0.0-rc.1 o 1.0.0-rc.0 o 1.0.5 o 1.0.4 o 1.0.3 o 1.0.2 o 1.0.1 o 1.0.0-beta.7 o 1.0.0-beta.6 o 1.0.0-beta.5 o 1.0.0-beta.4 o 1.0.0-beta.3 o 1.0.0-beta.2 o 1.0.0-beta.1 o 1.0.0-beta-rc.0 o 1.0.0-beta-rc.1 o 1.0.0-beta-rc.2 o 1.0.0-beta-rc.3 o 1.0.0-beta-rc.4 o 1.0.0-beta.0 o 1.0.0 + wry o 0.41.0 o 0.40.1 o 0.40.0 o 0.39.5 o 0.39.4 o 0.39.3 o 0.39.2 o 0.39.1 o 0.39.0 o 0.38.2 o 0.38.1 o 0.38.0 o 0.37.0 o 0.36.0 o 0.35.2 o 0.35.1 o 0.35.0 o 0.34.2 o 0.34.1 o 0.34.0 o 0.33.1 o 0.33.0 o 0.32.0 o 0.31.0 o 0.30.0 o 0.29.0 o 0.28.3 o 0.28.2 o 0.28.1 o 0.28.0 o 0.27.3 o 0.27.2 o 0.27.1 o 0.27.0 o 0.26.0 o 0.25.0 o 0.24.1 o 0.24.0 o 0.23.4 o 0.23.3 o 0.23.2 o 0.23.1 o 0.23.0 o 0.22.6 o 0.22.5 o 0.22.4 o 0.22.3 o 0.22.2 o 0.22.1 o 0.22.0 o 0.21.1 o 0.21.0 o 0.20.2 o 0.20.1 o 0.20.0 o 0.19.0 o 0.18.3 o 0.18.2 o 0.18.1 o 0.18.0 o 0.17.0 o 0.16.2 o 0.16.1 o 0.16.0 o 0.15.1 o 0.15.0 o 0.14.0 o 0.13.3 o 0.13.2 o 0.13.1 o 0.13.0 o 0.12.2 o 0.12.1 o 0.12.0 o 0.11.0 o 0.10.3 o 0.10.2 o 0.10.1 o 0.10.0 o 0.9.4 o 0.9.3 o 0.9.2 o 0.9.1 o 0.9.0 o 0.8.0 o 0.7.0 o 0.6.2 o 0.6.1 o 0.6.0 + tao o 0.28.1 o 0.28.0 o 0.27.1 o 0.27.0 o 0.26.2 o 0.26.1 o 0.26.0 o 0.25.0 o 0.24.1 o 0.24.0 o 0.23.0 o 0.22.3 o 0.22.2 o 0.22.1 o 0.22.0 o 0.21.1 o 0.21.0 o 0.20.0 o 0.19.1 o 0.19.0 o 0.18.3 o 0.18.2 o 0.18.1 o 0.18.0 o 0.17.0 o 0.16.0 o 0.15.9 o 0.15.8 o 0.15.7 o 0.15.6 o 0.15.5 o 0.15.4 o 0.15.3 o 0.15.2 o 0.15.1 o 0.15.0 o 0.14.0 o 0.13.3 o 0.13.2 o 0.13.1 o 0.13.0 o 0.12.2 o 0.12.1 o 0.12.0 o 0.11.2 o 0.11.1 o 0.11.0 o 0.10.0 o 0.9.1 o 0.9.0 o 0.8.5 o 0.8.4 o 0.8.3 o 0.8.2 o 0.8.1 o 0.8.0 o 0.7.0 o 0.6.4 o 0.6.3 o 0.6.2 o 0.6.1 o 0.6.0 o 0.5.2 o 0.5.1 o 0.5.0 o 0.4.0 o 0.3.1 o 0.3.0 o 0.2.6 o 0.2.5 o 0.2.4 o 0.2.3 o 0.2.2 o 0.2.1 o 0.2.0 * JavaScript + api o @tauri-apps/api o app o core o dpi o event o image o menu o mocks o path o tray o webview o webviewWindow o window + authenticator + autostart + barcode-scanner + biometric + cli + clipboard-manager + deep-link + dialog + fs + global-shortcut + http + log + nfc + notification + os + positioner + process + shell + sql + store + stronghold + updater + upload + websocket + window-state * Rust (docs.rs) GitHub Discord Twitter Mastodon RSS Select language [English ] * All posts * Recent posts + Tauri 2.0 Release Candidate + Announcing Tauri 1.7.0 + Tauri Board Elections 2024 + Rust Security Advisory CVE-2024-24576 + Announcing Tauri 1.6.0 + Announcing the Tauri v2 Beta Release + Strengthening Tauri: Our Partnership with CrabNebula + Announcing Tauri 1.5.0 + Roadmap to Tauri 2.0 + Tauri Board Elections & Governance Update + Announcing Tauri 1.4.0 + Announcing Tauri 1.3.0 + Tauri 2.0.0-alpha.4 Released + create-tauri-app Version 3 Released + Tauri Community Growth & Feedback + Migration to webkit2gtk-4.1 on Linux port + Announcing the Tauri Mobile Alpha Release + Announcing Tauri 1.2.0 + Announcing tauri-egui 0.1.0 + Announcing Tauri 1.1.0 + Tauri Programme Turns 1 and Board Elections + Tauri 1.0 Release GitHub Discord Twitter Mastodon RSS Select language [English ] On this page * Overview * The Road to Stable and Beyond * Breaking Changes + Tauri Core Plugins + Development Server for Mobile + Rust API Surface Refactor * External Security Audit * Call to Action * Too Long Didn't Read On this page * Overview * The Road to Stable and Beyond * Breaking Changes + Tauri Core Plugins + Development Server for Mobile + Rust API Surface Refactor * External Security Audit * Call to Action * Too Long Didn't Read Tauri 2.0 Release Candidate Aug 1, 2024 Tillmann Weidinger Tillmann Weidinger Tauri Security We are very proud to finally announce the first release candidate for the new major version of Tauri. After over half a year of beta versions, following over a year of alpha versions we are finally at the point where we consider Tauri 2 stabilized and do no longer expect breaking changes. We want to use a comparably short release candidate time frame to focus on our documentation and important bug fixes, which have been reported by our awesome community and working group members. A simplified TL;DR can be found at the end of this post. The Road to Stable and Beyond With this release candidate we want to communicate our expectations and timeline for the stable release. We have been asked countless times "Wen Tauri 2.0?" and always gave broad answers. Especially in open source projects overpromising can be a quick way to burn out developers and maintainers or lead to angry comments from disappointed adopters. This is one of the reasons for the long alpha and beta stage and why we waited with the release candidate, as we strive to get things right and simple to use. Another reason is that we made the mistake of overpromising this major version with "mobile as a first class citizen" and realized over the past months that we can only build the foundation for mobile on our own and need to iterate on this together with the community and our adopters to get it right. This doesn't mean that mobile is broken and unsupported. We have mobile plugins in our official plugin repository and have seen developers who have built cool apps on Android and iOS with Tauri. Our partner CrabNebula also provided us with feedback on how easy (or complicated) the developer experience was when they built or supported mobile applications for customers. They even contributed multiple mobile plugins (NFC, Barcode Scanner, Biometric, Haptics, Geolocation) as part of their work. We see improvements to be made in the development experience for mobile and we acknowledge that not all of our desktop features and plugins are ported or available on mobile yet. This causes us to say that we don't want to raise expectations that Tauri 2.0 will be the "mobile as a first class citizen" release but we want to make clear that you can develop production ready mobile applications with Tauri NOW. What you can expect from stable after this release candidate is: * Clearer and comprehensive documentation * Less critical bugs preventing productive usage We plan to release the stable version for 2.0 in the end of August. This will, at the time of writing, allow for a ~4 week release candidate cycle. After the stable release our focus will be shifting to providing feature parity wherever possible and to improve the development process for mobile. This will happen in minor releases of Tauri. Feature parity and plugin development will be aligned with major versions of Tauri but will be mostly independent from Tauri core features and happen in our plugin-workspace repository. Developer experience is a very important topic for us. If you have improvement suggestions or want to improve the status quo on your own please do not hesitate to reach out with PRs, issues or friendly conversations on our discord server. Breaking Changes Before we enter the "no more breaking changes" expectation phase we discussed and planned some from our perspective necessary breaking changes a while ago. These changes affect a lot of developers, so we wanted to bundle them and make it as painless as possible to upgrade from the latest beta to release candidate or stable. For app developers we have breaking changes in how core plugins are referenced in the permissions. You should be able to automatically migrate from the latest beta to release candidate. For this to succeed you must be sure to be on the latest (RC not beta) version of the Tauri CLI. Automated Migrate * npm * yarn * pnpm * cargo npm install @tauri-apps/cli@next npm run tauri migrate yarn upgrade @tauri-apps/cli --next yarn tauri migrate pnpm update @tauri-apps/cli@next pnpm tauri migrate cargo install tauri-cli --version "^2.0.0-rc" cargo tauri migrate Otherwise please read the detailed section below explaining the changes and how to manually migrate. For downstream consumers of Tauri as a library or app developers fiddling with the internals of Tauri we have a bigger refactor you should check out. Tauri Core Plugins With Tauri 2.0 we migrated most of the 1.x core functionality into separate plugins, which allows us to iterate on these independently of Tauri's core and lowers the barrier for first contributors on functionality. This migration also included keeping some functionality inside Tauri as pseudo plugins. Fully qualified plugins need to implement the Plugin Trait and need to be individual crates following the tauri-plugin- naming scheme. For core plugins, the second condition was not possible as we would have circular dependencies on Tauri. So we created pseudo plugins, which are always initialized by Tauri itself and only implement the plugin trait. These are for example window, path or webview. Right now these are allowed in the capabilities of your Tauri application in the following way: ... "permissions": [ "path:default", "event:default", "window:default", "app:default", "image:default", "resources:default", "menu:default", "tray:default" ] ... This has multiple problems: * Any plugin crate which has a colliding name will break our build process (e.g. tauri-plugin-window crate) and our cli for adding plugins (e.g. cargo tauri add window) * We can't use any core pseudo plugin naming that is already used by existing plugins (e.g. if we would ever want to createtauri-plugin-mobile-core and it is already used we will encounter the first problem) * It is unclear for developers what is a core plugin and what is a dedicated plugin when looking at capabilities Our approach is to use a fixed namespace for core plugins, which is documented and enforced by the Tauri core. All plugins starting with core: or the plugin name core are now considered core pseudo plugins and will only be initialized if they are in the Tauri codebase. This will cause a breaking change to all capabilites enabling Tauri core features. The above example will be changed to look like this: ... "permissions": [ "core:path:default", "core:event:default", "core:window:default", "core:app:default", "core:image:default", "core:resources:default", "core:menu:default", "core:tray:default" ] ... We also added a new special core:default permission set which will contain all default permissions of all core plugins, so you can simplify the permissions boilerplate in your capabilities config. ... "permissions": [ "core:default" ] ... We consider the core default exposure to be reasonably secure and safe to enable by default, with limited impact in case of a compromised frontend. To migrate from the latest beta version you need to prepend all core permission identifiers in your capabilities with core: or switch to the core:default permission and remove old core plugin identifiers. Development Server for Mobile We introduced changes to the network exposure of the built-in development server PR #10437 and PR #10456. With the changes shipped in the 2.0.0-rc.0 release of the Tauri CLI, we can connect to your development server running on localhost when targetting Android and iOS (previously this was only possible when developing a desktop application). This means you no longer need to expose your development server on the public network. Note When running your app on a physical iOS device we actually need to bind the development server on a TUN address provided by the device. This kind of connection is currently only possible when Xcode is opened and connected to your device, so we do not use this interface by default - we have to bind your development server to your public network address while we find out a way to connect to the device ourselves. To use the iOS device's address instead of the public network, run tauri ios dev --force-ip-prompt to select the iOS device's TUN address (ends with ::2). The IP address your frontend must listen to is provided by the TAURI_DEV_HOST environment variable. Here's an example of a Vite configuration migration: * 2.0.0-beta: import { defineConfig } from 'vite'; import { svelte } from '@sveltejs/vite-plugin-svelte'; import { internalIpV4Sync } from 'internal-ip'; const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM); export default defineConfig({ plugins: [svelte()], clearScreen: false, server: { host: mobile ? '0.0.0.0' : false, port: 1420, strictPort: true, hmr: mobile ? { protocol: 'ws', host: internalIpV4Sync(), port: 1421, } : undefined, }, }); * 2.0.0-rc: import { defineConfig } from 'vite'; import Unocss from 'unocss/vite'; import { svelte } from '@sveltejs/vite-plugin-svelte'; const host = process.env.TAURI_DEV_HOST; export default defineConfig({ plugins: [svelte()], clearScreen: false, server: { host: host || false, port: 1420, strictPort: true, hmr: host ? { protocol: 'ws', host: host, port: 1430, } : undefined, }, }); Note This means the internal-ip NPM package is no longer required, you can directly use the TAURI_DEV_HOST value instead. Rust API Surface Refactor With a coordinated effort between multiple working group members we partially changed our Rust API exposure. This affects only consumers of our Rust API and should have no breaking change impact for Tauri application developers. This was motivated by a recent security advisory CVE-2024-35222, as the fix needed to introduce additional fields to a structure that was directly publicly exposed and caused breaking changes to some projects and internal usage. We concluded that this overexposure will hinder us in the future and will cause unnecessary breaking changes, so we decided that going from beta to RC will be the last chance for us to implement this until we start down the road of Tauri 3.0. We reduced the amount of publicly exposed components, which are meant for internal use. Additionally, we made our publicly exposed structures either non-exhaustive or transformed them into exposing builder patterns or constructors. In some cases we added a new extend field to allow dynamic additions in the future. Finally, we made sure to document which modules of Tauri are considered unstable. This will help us to provide (security) fixes or changes without breaking interfaces that are considered stable. Please take a closer look at the introduced and discussed changes in the #10158 pull request. External Security Audit TL;DR The audit concluded some time ago and all issues were fixed and retested. Report is going to be available here soon. Please upgrade to the release candidate to ensure fixes for the reported issues. We have been quiet on this front for some time as we have been busy fixing and discussing issues discovered during the beta versions. We never marketed version 2 beta releases as production ready but were aware of some apps deployed into production. This caused us to announce and distribute a security patch for one of the findings ( CVE-2024-35222) which was also independently discovered by a Tauri community member. All other findings were fixed in multiple beta versions but we did not create advisories for these. We concluded a full heads up could wait until the release candidate, as the findings mainly affect the development phase or have no critical severity. With the release candidate we will add the full report to our repository. Please take your time to read the report and learn more about the awesome work of @gronke and @pcwizz from RadicallyOpenSecurity. The whole audit was funded by the great folks at NLNet and we are super grateful to be in the privileged position to get fully funded external security audits. Call to Action All of the above topics share a common theme. These would not have been possible without the continuous support of the community, our working group and other movements working towards improving the status quo. Before we are going to release Tauri 2.0 we want to make sure that your voices are heard, your PRs are acknowledged and the documentation is helpful for YOU so that you can build the next generation of cross platform apps. Currently we have over 30 people in our working group on Github but even more involved in our Discord. These awesome people are mostly working on Tauri in their free time with very few exceptions. We currently see a number of issues, PRs and discussions being unsolved and open for longer than we would like to. To improve this situation we ask YOU to get involved into the Tauri project.We have all kinds of situations where we are able to accept event the tiniest contribution. If you are familiar with Tauri and have used it already during your journey, please take your time to check out the Github Discussions, Github Issues and our Discord Support. Maybe you have already solved the issues your fellow newcomers to Tauri are experiencing right now. If you think that some of these problems you have seen are generic and should be documented somewhere we probably have the perfect place for it in our official documentation. To contribute improvements or additions we are open for PRs in the tauri-docs repository. Please make sure you've read the guidelines for contribution though. If you are in the position to understand and translate the current documentation into your native language we appreciate content translations to our documentation. If you have followed our project for a while but never made a contribution we would be happy to understand what has prevented you from doing so and how we could improve this. Please reach out to us in our Discord or in our Github Discussions. Too Long Didn't Read * Tauri 2.0 Release Candidate out now! * Some migration from beta is needed. Check out tauri migrate. * External Security Audit for 2.0 is going to be available here soon * All findings are fixed and fixes were verified * Documentation is our focus until stable release * Tauri is looking for more contributors and community involvement Announcing Tauri 1.7.0 Edit page Last updated: Aug 2, 2024 Previous All posts Next Announcing Tauri 1.7.0 --------------------------------------------------------------------- (c) 2024 Tauri Contributors. CC-BY / MIT