| tauri2-docs | ||
| tauri2-guide | ||
| .gitignore | ||
| README.md | ||
Tauri 2.0 Developer Reference Library
A comprehensive, self-contained reference library for building applications with Tauri 2.0 (Rust backend + web frontend). All code examples are validated against the Tauri 2.0 API. This repository contains guides, agent prompts, error resolution references, and cheat sheets — designed to be searched and referenced directly by LLMs and developers.
Official Tauri 2.0 Documentation: https://v2.tauri.app Rust API Docs: https://docs.rs/tauri/latest/tauri/
Repository Structure
tauri2-vin-ws-temp/
├── tauri2-guide/ # AUTHORITATIVE GUIDES — start here
│ ├── definitive-guide.md # Full reference (architecture, config, commands, events, plugins, windows, state, migration)
│ ├── agent-prompts.md # Copy-paste prompts for instructing LLM agents to build Tauri 2.0 apps
│ └── error-resolution-guide.md # Every known error category with exact messages, root causes, and solutions
│
├── tauri2-docs/ # SUPPLEMENTARY REFERENCES
│ ├── cheatsheet.md # Quick-reference cheat sheet (commands, config, IPC, WebSocket patterns)
│ ├── ws_server_client_inject_guide.md # Deep-dive: native WebSocket server, frontend clients, script injection
│ └── tauri2-links.md # Curated links to official Tauri 2.0 documentation pages
│
└── README.md # THIS FILE — navigation index for LLMs and developers
How to Use This Repository
For LLMs / AI Agents
This repository is designed to be searched directly. When you receive a Tauri 2.0 question, use the table below to locate the most relevant document, then read the specific section referenced.
Important constraints for agents:
- You cannot compile or run code in a sandbox. Verify correctness using logic, API pattern matching, and cross-referencing these documents.
- All code in this repository is Tauri 2.0 only — do NOT use v1 patterns (see the migration section in
definitive-guide.mdfor the full v1-to-v2 diff). - Every plugin requires 4 things: (1) Rust crate in
Cargo.toml, (2).plugin()registration in the Builder, (3) npm package, (4) permissions in capabilities.
For Developers
Use the Definitive Guide (tauri2-guide/definitive-guide.md) as your primary reference. It covers every aspect of Tauri 2.0 development end-to-end. For specific tasks, use the Agent Prompts as templates. For debugging, search the Error Resolution Guide by error message.
Document Index — What to Read for Each Topic
| Topic | File | Key Sections |
|---|---|---|
| Architecture overview, project structure, scaffolding | tauri2-guide/definitive-guide.md |
Sections 1–2 |
Configuration (tauri.conf.json v2 schema) |
tauri2-guide/definitive-guide.md |
Section 3 |
| Capabilities & permissions (ACL security model) | tauri2-guide/definitive-guide.md |
Section 4 |
Rust backend: lib.rs, commands, Builder pattern |
tauri2-guide/definitive-guide.md |
Section 5 |
Frontend integration (JS imports, invoke, plugins) |
tauri2-guide/definitive-guide.md |
Section 6 |
| IPC: commands, events, channels, streaming | tauri2-guide/definitive-guide.md |
Section 7 |
| Window management (multi-window, external URLs) | tauri2-guide/definitive-guide.md |
Section 8 |
| Plugin ecosystem (all 33+ official plugins) | tauri2-guide/definitive-guide.md |
Section 9 |
| Native WebSocket server (Tokio + broadcast) | tauri2-guide/definitive-guide.md Section 10 / tauri2-docs/ws_server_client_inject_guide.md Part 1 |
|
| Script injection into webview windows | tauri2-guide/definitive-guide.md Section 11 / tauri2-docs/ws_server_client_inject_guide.md Part 3 |
|
| State management (Mutex, managed state) | tauri2-guide/definitive-guide.md |
Section 12 |
| v1 to v2 migration (full API diff) | tauri2-guide/definitive-guide.md Section 13 / tauri2-guide/agent-prompts.md Section 14 |
|
| Anti-patterns to avoid | tauri2-guide/definitive-guide.md |
Section 14 |
| Quick reference cheat sheet | tauri2-docs/cheatsheet.md |
All sections |
| WebSocket server + client + injection deep-dive | tauri2-docs/ws_server_client_inject_guide.md |
Parts 1–3 |
| Links to official docs (migration, security, config) | tauri2-docs/tauri2-links.md |
All entries |
| Agent system prompt (mandatory prefix for all tasks) | tauri2-guide/agent-prompts.md |
Section 1 |
| Task-specific agent prompts (scaffold, plugin, command, etc.) | tauri2-guide/agent-prompts.md |
Sections 2–12 |
| Agent verification checklist | tauri2-guide/agent-prompts.md |
Section 13 |
| Rust compilation errors (Cargo build failures) | tauri2-guide/error-resolution-guide.md |
Category A |
| v1-to-v2 migration compile errors | tauri2-guide/error-resolution-guide.md |
Category B |
| Async/thread safety errors (Mutex, Send, lifetime) | tauri2-guide/error-resolution-guide.md |
Category C |
Config errors (tauri.conf.json validation) |
tauri2-guide/error-resolution-guide.md |
Category D |
| Permission/capability errors ("not allowed") | tauri2-guide/error-resolution-guide.md |
Category E |
| Plugin integration errors | tauri2-guide/error-resolution-guide.md |
Category F |
| IPC / command runtime errors | tauri2-guide/error-resolution-guide.md |
Category G |
| Webview & window runtime errors | tauri2-guide/error-resolution-guide.md |
Category H |
| Event system errors | tauri2-guide/error-resolution-guide.md |
Category I |
| Content Security Policy (CSP) errors | tauri2-guide/error-resolution-guide.md |
Category J |
| Frontend integration errors (Vite, Next.js, SvelteKit) | tauri2-guide/error-resolution-guide.md |
Category K |
| WebSocket errors | tauri2-guide/error-resolution-guide.md |
Category L |
| Path & asset protocol errors | tauri2-guide/error-resolution-guide.md |
Category M |
| Shell & sidecar errors | tauri2-guide/error-resolution-guide.md |
Category N |
| Mobile build errors (iOS & Android) | tauri2-guide/error-resolution-guide.md |
Category O |
| Platform-specific build errors | tauri2-guide/error-resolution-guide.md |
Category P |
| Panics & runtime crashes | tauri2-guide/error-resolution-guide.md |
Category Q |
| Error handling best practices | tauri2-guide/error-resolution-guide.md |
Category R |
| Top 25 most common errors (quick lookup) | tauri2-guide/error-resolution-guide.md |
Quick-Reference section |
Key Tauri 2.0 Concepts (Quick Orientation)
The v1 vs v2 Difference — Critical
Tauri 2.0 is a complete rewrite, not an incremental update. The most common mistake is using v1 API patterns in a v2 project. The most frequently violated rules:
| Area | v1 (WRONG in v2) | v2 (Correct) |
|---|---|---|
| Window type | tauri::Window |
tauri::WebviewWindow |
| Window builder | tauri::WindowBuilder |
tauri::WebviewWindowBuilder |
| Window URL | tauri::WindowUrl |
tauri::WebviewUrl |
| Get window | get_window("main") |
get_webview_window("main") |
| JS invoke import | @tauri-apps/api/tauri |
@tauri-apps/api/core |
| JS window import | @tauri-apps/api/window |
@tauri-apps/api/webviewWindow |
| Plugin JS imports | @tauri-apps/api/<name> |
@tauri-apps/plugin-<name> |
| Config app section | tauri key |
app key |
| Config dist dir | build.distDir |
build.frontendDist |
| Security model | allowlist in config |
Capabilities + Permissions (ACL) |
| Core logic file | main.rs only |
lib.rs + main.rs pattern |
| Event emit | window.emit() |
app.emit() (global) / app.emit_to() (targeted) |
| Rust APIs | tauri::api::* modules |
Everything moved to plugins |
Full migration map: See tauri2-guide/agent-prompts.md Section 14 (v1 vs v2 API Map).
The 4-Step Plugin Pattern
Every Tauri 2.0 plugin requires all four steps:
- Rust crate — Add
tauri-plugin-<name> = "2"tosrc-tauri/Cargo.toml - Registration — Add
.plugin(tauri_plugin_<name>::init())in thetauri::Builder - JS package —
npm install @tauri-apps/plugin-<name> - Permissions — Add permission identifiers (e.g.,
fs:default) tosrc-tauri/capabilities/default.json
The Project Structure Pattern
src/ → Frontend UI (HTML/CSS/JS or any framework)
src-tauri/ → Rust backend
src/main.rs → Minimal desktop entry-point (calls lib::run())
src/lib.rs → Core app logic, Builder, commands, setup
src/<modules>.rs → Additional Rust modules
capabilities/ → Security capability JSON files
tauri.conf.json → Main config (v2 schema)
Cargo.toml → Rust dependencies
build.rs → Tauri build script
The Command Pattern
#[tauri::command]
async fn my_command(name: String) -> Result<String, String> {
Ok(format!("Hello, {}!", name))
}
// Register in Builder (single invoke_handler call only):
.invoke_handler(tauri::generate_handler![my_command])
// Frontend invocation
import { invoke } from '@tauri-apps/api/core';
const result = await invoke('my_command', { name: 'World' });
Search Tips for LLMs
When looking for information in this repository, search for these keywords and patterns:
- Error messages: Search the exact error string (e.g.,
"unresolved import tauri::api","command not found","not allowed") inerror-resolution-guide.md - API names: Search for type names (e.g.,
WebviewWindowBuilder,Emitter,Channel) indefinitive-guide.md - Config keys: Search for JSON key names (e.g.,
frontendDist,withGlobalTauri,capabilities) indefinitive-guide.mdSection 3 - Plugin names: Search for plugin identifiers (e.g.,
tauri-plugin-fs,plugin-dialog,store:default) indefinitive-guide.mdSection 9 - Migration: Search for old v1 names (e.g.,
WindowBuilder,allowlist,@tauri-apps/api/tauri) to find their v2 replacements - Patterns: Search for pattern keywords (e.g.,
initialization_script,run_on_main_thread,broadcast channel,include_str) in bothdefinitive-guide.mdandws_server_client_inject_guide.md - Permission identifiers: Search for permission strings (e.g.,
core:event:allow-listen,fs:allow-read,http:default) indefinitive-guide.mdSection 4 anderror-resolution-guide.mdCategory E
Official External References
These links point to the canonical Tauri 2.0 documentation. Always prefer these for the latest API details:
| Resource | URL |
|---|---|
| Main documentation hub | https://v2.tauri.app |
| Migration from v1 to v2 | https://v2.tauri.app/start/migrate/from-tauri-1/ |
| Capabilities & security model | https://v2.tauri.app/security/capabilities/ |
| Permissions reference | https://v2.tauri.app/security/permissions/ |
| Configuration files schema | https://v2.tauri.app/develop/configuration-files/ |
| Calling Rust from frontend | https://v2.tauri.app/develop/calling-rust/ |
| Calling frontend from Rust | https://v2.tauri.app/develop/calling-frontend/ |
| Plugin index | https://v2.tauri.app/plugin/ |
| Rust crate API docs | https://docs.rs/tauri/latest/tauri/ |