# System map — tauri-apps/tauri

> Canonical page: https://codevetter.com/unpack/tauri/system-map

# System map — tauri-apps/tauri

Scanned commit 745b9a48aeb6e7f48d70adf3d043e6203de5bac6 (2026-09-22). Generated by codevetter codevetter 1.12.0 on 2026-09-22.

The repo is a Cargo workspace plus a pnpm workspace. The hub is crates/tauri (the `tauri` crate, v2.11.5), which depends on tauri-runtime (trait layer), tauri-runtime-wry (default WRY/TAO-based runtime), tauri-utils (config/ACL/assets), tauri-codegen + tauri-macros (compile-time codegen) and tauri-build (build-script API). Tooling lives in crates/tauri-cli (the `cargo-tauri` binary), crates/tauri-bundler (installer packaging), crates/tauri-driver (WebDriver proxy), and packages/api + packages/cli (the npm-facing JS). Mobile (Android/iOS) support is split between CLI subcommands and Kotlin/Swift glue under crates/tauri/mobile.
- The root Cargo.toml workspace lists 14 published crates under crates/ plus packages/cli, integration tests (crates/tests/restart, crates/tests/acl), bench apps and examples; workspace release profile uses panic="abort", lto and opt-level "s". — [Cargo.toml](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/Cargo.toml)
- crates/tauri is the core crate: its lib.rs declares modules app, async_runtime, event, ipc, manager, pattern, plugin, protocol, resources, webview, window, menu, path, process, scope, state, tray and vibrancy, and re-exports Builder/App/AppHandle plus the `command`, `generate_handler` and `generate_context` macros. — [crates/tauri/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri/src/lib.rs)
- The runtime is abstracted behind the `Runtime`/`RuntimeHandle` traits in crates/tauri-runtime; the default implementation is `tauri::Wry` = `tauri_runtime_wry::Wry<EventLoopMessage>` gated behind the `wry` cargo feature, so a custom runtime can be substituted by disabling the feature. — [crates/tauri/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri/src/lib.rs) [crates/tauri-runtime/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-runtime/src/lib.rs) [crates/tauri-runtime-wry/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-runtime-wry/src/lib.rs) [ARCHITECTURE.md](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/ARCHITECTURE.md)
- App configuration is resolved at compile time: `generate_context!`/`tauri_build_context!` produce a `Context<R>` carrying the parsed Config, embedded assets, window/tray icons, PackageInfo, the security `Pattern` and a `RuntimeAuthority` built from resolved ACLs. — [crates/tauri/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri/src/lib.rs) [crates/tauri-codegen/src/context.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-codegen/src/context.rs)
- The `cargo-tauri` binary entrypoint (crates/tauri-cli/src/main.rs) strips a leading `tauri` cargo-subcommand arg, derives bin_name, and calls `tauri_cli::run`; it only supports macOS, Linux and Windows and exits 1 elsewhere. — [crates/tauri-cli/src/main.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-cli/src/main.rs)
- tauri_cli::run parses a clap `Cli` with subcommand enum Commands (init, dev, build, bundle, android, ios, migrate, info, add, remove, plugin, icon, signer, completions, permission, capability, inspect) and dispatches each to a module under crates/tauri-cli/src/. — [crates/tauri-cli/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-cli/src/lib.rs)
- The npm package @tauri-apps/cli is a thin napi-rs wrapper: packages/cli/src/lib.rs exposes a `run` napi function that spawns a thread, catches panics, and calls `tauri_cli::try_run`, reporting back through a ThreadsafeFunction callback. — [packages/cli/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/packages/cli/src/lib.rs) [packages/cli/index.js](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/packages/cli/index.js)
- @tauri-apps/api (packages/api) is a TypeScript library with modules core, event, window, webview, webviewWindow, menu, tray, path, app, dpi, image and mocks, all communicating with Rust through `window.__TAURI_INTERNALS__.invoke`. — [packages/api/src/core.ts](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/packages/api/src/core.ts) [packages/api/src/event.ts](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/packages/api/src/event.ts) [packages/api/package.json](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/packages/api/package.json)
- tauri-driver is a standalone binary that spawns the platform's native WebDriver server and runs an intermediary WebDriver node (modules cli, server, webdriver) on Linux and Windows only; it exits on other platforms. — [crates/tauri-driver/src/main.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-driver/src/main.rs)
- tauri-bundler maps bundle target strings to a PackageType enum covering deb, rpm, appimage, dmg, app, msi, nsis, ios and updater artifacts, and is invoked by the CLI through `tauri_bundler::bundle_project(&settings)`. — [crates/tauri-bundler/src/bundle/settings.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-bundler/src/bundle/settings.rs) [crates/tauri-cli/src/bundle.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-cli/src/bundle.rs)
- crates/tauri-plugin provides the plugin-authoring SDK with a `build` feature (permission/global-API-script/android/ios path registration via `Builder`) and a `runtime` feature, re-exported as `pub use build::*` / `pub use runtime::*`. — [crates/tauri-plugin/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-plugin/src/lib.rs) [crates/tauri-plugin/src/build/mod.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-plugin/src/build/mod.rs)
- The JS/TS workspace is driven by pnpm (pnpm-workspace.yaml) with root scripts `build`, `build:api`, `build:cli`, `test`, `test:api-e2e`; Rust builds/tests run via cargo with toolchain 1.90 in CI. — [package.json](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/package.json) [pnpm-workspace.yaml](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/pnpm-workspace.yaml) [.github/workflows/test-core.yml](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/.github/workflows/test-core.yml)
- Mobile support spans crates/tauri-cli/src/mobile (android/ios subcommand trees), Kotlin sources under crates/tauri/mobile, the `mobile_entry_point` macro and the `android_binding!` macro that glues Java PluginManager callbacks (handlePluginResponse, sendChannelData) into Rust. — [crates/tauri-cli/src/mobile/mod.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri-cli/src/mobile/mod.rs) [crates/tauri/src/lib.rs](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri/src/lib.rs) [crates/tauri/mobile/android/src/main/java/app/tauri/PathPlugin.kt](https://github.com/tauri-apps/tauri/blob/745b9a48aeb6e7f48d70adf3d043e6203de5bac6/crates/tauri/mobile/android/src/main/java/app/tauri/PathPlugin.kt)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
