Tauri Development

作者 mindrally97184105b5da无许可证269 个星标收录于 2026年10月8日更新于 2026年10月8日仓库5周前更新

Tauri development guidelines for building cross-platform desktop applications with TypeScript, Rust, and modern web technologies

AI 生成的概览

使用 TypeScript、React 和 Rust 构建 Tauri 跨平台桌面应用的开发指南。

功能
提供 Tauri 桌面应用的开发指南,涵盖项目结构、TypeScript 与 Rust 代码风格、Tauri 命令与事件集成、错误处理、安全性、基于 TailwindCSS 和 ShadCN-UI 的界面、状态管理、文件系统操作、构建、分发、性能与测试。它只是带代码示例的说明性参考,而非生成文件的工具。
适用场景
适用于实现、组织或审查结合 TypeScript 前端与 Rust 后端的 Tauri 桌面应用。也适合查询 Tauri 命令、IPC、安全配置和打包方面的指导。
运行要求
不附带任何脚本或工具,仅为说明性内容。按指南实践需要一个 Tauri 项目,并具备 Node.js/TypeScript、Rust 与 Cargo 以及 Tauri CLI。

Tauri Development Guidelines

You are an expert in TypeScript and Rust development for cross-platform desktop applications using Tauri.

Core Principles

  • Write clean, maintainable TypeScript and Rust code
  • Use TailwindCSS and ShadCN-UI for styling
  • Follow step-by-step planning for complex features
  • Prioritize code quality, security, and performance

Technology Stack

  • Frontend: TypeScript, React/Next.js, TailwindCSS, ShadCN-UI
  • Backend: Rust, Tauri APIs
  • Build: Tauri CLI, Vite/Webpack

Project Structure

src/├── app/                # Next.js app directory├── components/         # React components│   ├── ui/            # ShadCN-UI components│   └── features/      # Feature-specific components├── hooks/             # Custom React hooks├── lib/               # Utility functions├── styles/            # Global stylessrc-tauri/├── src/               # Rust source code│   ├── main.rs       # Entry point│   └── commands/     # Tauri commands├── Cargo.toml        # Rust dependencies└── tauri.conf.json   # Tauri configuration

TypeScript Guidelines

Code Style

  • Use functional components with TypeScript
  • Define proper interfaces for all data structures
  • Use async/await for asynchronous operations
  • Implement proper error handling

Tauri Integration

typescript
import { invoke } from '@tauri-apps/api/tauri';
// Call Rust commands from frontendconst result = await invoke<string>('my_command', { arg: 'value' });
// Listen to events from Rustimport { listen } from '@tauri-apps/api/event';await listen('event-name', (event) => {  console.log(event.payload);});

Rust Guidelines

Command Definitions

rust
#[tauri::command]fn my_command(arg: String) -> Result<String, String> {    // Implementation    Ok(format!("Received: {}", arg))}
fn main() {    tauri::Builder::default()        .invoke_handler(tauri::generate_handler![my_command])        .run(tauri::generate_context!())        .expect("error while running tauri application");}

Error Handling

  • Use Result types for fallible operations
  • Define custom error types when needed
  • Propagate errors appropriately
  • Log errors for debugging

Security

  • Validate all inputs from the frontend
  • Use Tauri's security features (CSP, allowlist)
  • Minimize permissions in tauri.conf.json
  • Sanitize file paths and user inputs

UI Development

TailwindCSS

  • Use utility-first approach
  • Implement responsive design
  • Use dark mode support
  • Follow consistent spacing and sizing

ShadCN-UI Components

  • Use pre-built accessible components
  • Customize with TailwindCSS
  • Maintain consistent theming
  • Follow accessibility best practices

State Management

  • Use React Context for global state
  • Consider Zustand for complex state
  • Keep state close to where it's used
  • Implement proper state synchronization with Rust

File System Operations

rust
use std::fs;use tauri::api::path::app_data_dir;
#[tauri::command]fn read_file(path: String) -> Result<String, String> {    fs::read_to_string(&path)        .map_err(|e| e.to_string())}
#[tauri::command]fn write_file(path: String, content: String) -> Result<(), String> {    fs::write(&path, content)        .map_err(|e| e.to_string())}

Building and Distribution

  • Configure proper app metadata
  • Set up code signing for distribution
  • Use Tauri's updater for auto-updates
  • Test on all target platforms

Performance

  • Minimize IPC calls between frontend and Rust
  • Use batch operations where possible
  • Implement proper caching
  • Profile and optimize hot paths

Testing

  • Write unit tests for Rust commands
  • Test frontend components
  • Implement integration tests
  • Test on all target platforms

来源与署名

来源:mindrally/skills位于tauri-development提交9718410

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架