tauri-apps/tauri
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
How tauri is put together
This is the Tauri framework monorepo: a Rust workspace building the core application framework for creating desktop/mobile apps with web frontends, plus the JavaScript API layer consumed by those frontends. The Rust workspace is split into layered crates: `tauri` (core runtime), `tauri-runtime`/`tauri-runtime-wry` (windowing abstraction over WRY/webview), build-time crates (`tauri-build`, `tauri-codegen`), developer tooling (`tauri-cli`, `tauri-bundler`, `tauri-macos-sign`, `tauri-driver`), and shared utilities (`tauri-utils`, `tauri-macros`). The TypeScript side ships two published packages under pnpm workspaces: `packages/api` (@tauri-apps/api, bundled via Rollup to ESM/CJS/IIFE) and `packages/cli` (a NAPI-RS wrapper exposing the Rust CLI binary to Node). Data flow is frontend JS calling IPC commands into the Rust core, with capabilities/ACL gating enforced at build time and runtime.
Languages
Frameworks
Infrastructure
Major components
crates/tauri (core)
The main Tauri runtime crate providing app lifecycle, IPC command handling, event system, window/webview management, and plugin/capability integration.
tauri-runtime / tauri-runtime-wry
Abstract windowing/webview interface trait layer and its concrete implementation over the WRY webview library.
tauri-build / tauri-codegen
Build-time code generation: compiles configuration, assets, capabilities, and resources into the binary at compile time.
tauri-cli
Developer CLI (cargo tauri / @tauri-apps/cli) for scaffolding, dev server watching, and driving builds/bundles; also publishes JSON schemas (config.schema.json, tauri.config.schema.json).
tauri-bundler
Packages built executables into OS-specific installers/bundles (MSI/WiX, NSIS, DMG/App bundles, AppImage, deb, RPM) including signing hooks.
@tauri-apps/api (packages/api)
TypeScript IPC/API library injected into webviews, bundled by Rollup to ESM, CJS, and a global IIFE bundle embedded as crates/tauri/scripts/bundle.global.js.
@tauri-apps/cli (packages/cli)
NAPI-RS Node.js wrapper that loads platform-specific native .node bindings of the Rust CLI and exposes run()/logError() to npm consumers.
tauri-utils / tauri-macros / tauri-plugin / tauri-schema-generator
Shared helpers (config parsing, ACL, platform detection), proc macros for commands/state, plugin system abstractions, and schema generation for reference docs.
A quieter week centered on developer-experience improvements, including a warning for apps still using the default product name.
5 weeksWeek of 2026-08-17
Week of 2026-08-17latest
A quieter week centered on developer-experience improvements, including a warning for apps still using the default product name.
Week of 2026-08-10
Android tooling got a big refresh with Gradle 9 and targetSdk 37, alongside several crash-prevention fixes.
Week of 2026-08-03
The busiest week of the period brought a new wry permission handler API plus fixes for nightly-Rust compatibility and deterministic builds.
Week of 2026-07-27
Core windowing libraries tao and wry were upgraded, and several Linux-specific window and display bugs were fixed.
Week of 2026-07-20
A feature-rich week added non-square icon generation and a binary-patching opt-out, plus memory-leak fixes for event listeners.
Over the past five weeks, the Tauri project focused on modernizing its toolchain and platform templates — upgrading to newer versions of tao/wry, Gradle 9, targetSdk 37, and newer Node/pnpm versions in CI — while also shipping user-facing features like non-square icon support and a permission handler API. A steady stream of bug fixes landed across Android, Linux, Windows, and the bundler, including some breaking changes like querying monitors on the main thread. Housekeeping work such as workspace dependency management, dependency updates via Renovate, and documentation clarifications rounded out each week.
Week by week
2026-08-17A quieter week centered on developer-experience improvements, including a warning for apps still using the default product name.latest6 changes
Feature
Warning when productName is left default
The CLI now warns developers who haven't set a custom product name, which helps avoid accidentally publishing apps under the generic default name.
Fix
Explicit Resource Management for Resource
The Resource API now supports JavaScript's 'using' syntax so resources are cleaned up automatically when they go out of scope.
Refactor
Locked minor versions
Dependencies were pinned to specific minor versions to keep builds more predictable.
Docs
Clarified convertFileSrc asset protocol setup
Documentation was improved to explain how to correctly configure the asset protocol used with convertFileSrc.
Docs
Documented Explicit Resource Management
API docs were updated to cover the new resource cleanup behavior.
Chore
Dependency and lint cleanups
Routine maintenance included fixing linter warnings and updating the jsonschema crate to v0.49.9.
2026-08-10Android tooling got a big refresh with Gradle 9 and targetSdk 37, alongside several crash-prevention fixes.6 changes
Feature
Android template updated to targetSdk 37
New Android projects now target the latest Android SDK level, keeping apps compliant with Play Store requirements.
Fix
Android template moved to Gradle 9
The Android project template now uses Gradle 9, the current major version of the build tool.
Fix
Menu commands no longer panic
Certain menu-related commands could previously crash the app; that's been fixed.
Fix
Monitors queried on main thread
A breaking change ensures monitor information is always fetched on the main thread, preventing crashes on some platforms.
Feature
Warning when Java is too new for bundled Gradle
The CLI now alerts developers if their installed Java version is incompatible with the Gradle version Tauri ships with.
Chore
Workspace dependency management
All Rust dependencies were consolidated into centralized workspace management, making version upkeep easier across the project.
2026-08-03The busiest week of the period brought a new wry permission handler API plus fixes for nightly-Rust compatibility and deterministic builds.6 changes
Feature
Wry permission handler exposed in Tauri
Developers can now intercept and control webview permission requests (like camera or microphone access) directly from their Tauri app.
Fix
Deterministic asset codegen and config serialization
Build outputs are now byte-for-byte identical across runs, which helps with reproducible releases.
Fix
Bundler stopped shipping xdg-open/xdg-utils
Linux packages no longer bundle these system utilities unnecessarily, reducing package size and conflicts.
Fix
Correct exit code from run_return()
Apps using the alternate run loop now receive the proper exit code instead of an unexpected value.
Fix
Nightly Rust build compatibility
Builds were fixed for people testing upcoming Rust compiler versions, resolving issues finding output directories and library files.
Fix
Android plugin manager activity fix
Plugins now work correctly regardless of which activity is active, improving Android reliability.
2026-07-27Core windowing libraries tao and wry were upgraded, and several Linux-specific window and display bugs were fixed.5 changes
Feature
Upgraded tao to 0.36 and wry to 0.56
The foundational libraries handling windows and webviews were updated, bringing along their latest fixes and capabilities.
Fix
Resize cursor on undecorated Linux windows
On Linux, the mouse pointer now shows the correct resize cursor near the edges of borderless WebKitGTK windows.
Fix
Bundler respects configured GDK backend
Linux packaging now honors your chosen graphics backend setting instead of ignoring it.
Docs
Documented browser argument data directory requirement
Docs now explain why certain browser arguments require specifying a data directory.
Chore
Dependency updates and CI tweaks
Objective-C crates, jsonschema, and napi-rs grouping saw routine updates and CI configuration changes.
2026-07-20A feature-rich week added non-square icon generation and a binary-patching opt-out, plus memory-leak fixes for event listeners.6 changes
Feature
Non-square source images for tauri icon
You can now feed rectangular images into the icon generator and get properly scaled icons for every platform.
Feature
--no-binary-patching flag for build and bundle
Developers can skip Tauri's automatic modification of built binaries when their workflow doesn't need it.
Fix
Event listeners purged on window/webview destruction
Closing a window or webview now cleans up its event listeners, preventing slow memory leaks over time.
Fix
Newly added resource files copied on rebuild
Files added to resource directories after an initial build are now picked up correctly.
Fix
Webview focus restoration on Windows
A breaking change restores proper keyboard focus behavior for webviews when the unstable feature is enabled.
Chore
CI modernized to Node 22/24
Continuous integration testing moved off Node 20 to test against the two most recent Node.js versions.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 1 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required