菜单

项目结构

相关源文件

本文档概述了 Tauri 的仓库结构,重点介绍了代码库的组织、主要 crate、包及其关系。它解释了不同组件如何协同工作形成完整的 Tauri 框架。

有关核心架构的信息,请参阅 核心架构

存储库结构

Tauri 的仓库被组织成几个关键目录

来源

Rust Crates

Rust 组件被组织成多个 crate,每个 crate 都有特定的职责

来源

核心 Crates

tauri

提供创建 Tauri 应用程序核心 API 的主 crate。它包括

  • 应用程序初始化和生命周期管理
  • 用于 Rust-JavaScript 通信的命令系统
  • 窗口管理
  • Webview 管理
  • 插件系统

来源

tauri-runtime

定义了 Tauri 用于与底层窗口和 webview 系统交互的运行时接口。这个抽象允许 Tauri 潜在地支持不同的 webview 实现。

来源

tauri-runtime-wry

使用 Wry(一个跨平台 WebView 库)实现的 tauri-runtime 接口。这个 crate 负责实际的窗口和 webview 创建。

来源

tauri-utils

包含 Tauri Crates 中使用的实用函数和数据结构,包括

  • 配置类型和解析器
  • 资源处理
  • 通用的特定于平台的实用程序

来源

构建和分发 Crates

tauri-cli

Tauri 的命令行界面。这个 crate 提供了创建、开发和构建 Tauri 应用程序的命令。

来源

tauri-bundler

处理 Tauri 应用程序在不同平台上的打包,包括

  • 创建特定于平台的安装程序
  • 配置应用程序元数据
  • 管理应用程序图标
  • 签名应用程序

来源

JavaScript 包

Tauri 提供 JavaScript 包,以便从 Web 应用程序与 Tauri 核心进行交互

来源

@tauri-apps/api

用于从 Web 应用程序与 Tauri 交互的 JavaScript API。它包括

  • 调用 Rust 命令的核心功能
  • 窗口管理
  • Webview 操作
  • 事件系统
  • 文件系统访问
  • 等等

来源

@tauri-apps/cli

Rust CLI 的 JavaScript 包装器,允许从 Node.js 执行 Tauri 命令

来源

配置系统

Tauri 应用程序使用 JSON 配置文件进行配置,通常命名为 tauri.conf.json

配置文件架构定义在

来源

配置示例

来源

依赖和版本控制

Tauri 跨组件保持严格的版本控制以确保兼容性

组件当前版本文件
tauri2.5.0crates/tauri/Cargo.toml
tauri-runtime2.6.0crates/tauri-runtime-wry/Cargo.toml
tauri-runtime-wry2.6.0crates/tauri-runtime-wry/Cargo.toml
tauri-utils2.4.0crates/tauri/Cargo.toml
tauri-cli2.5.0crates/tauri-cli/Cargo.toml
tauri-bundler2.4.0crates/tauri-bundler/Cargo.toml
@tauri-apps/api2.5.0packages/api/package.json
@tauri-apps/cli2.5.0packages/cli/package.json

来源

代码组织在核心 Crates 中

tauri Crate 结构

这个 tauri crate 被组织成几个关键模块

来源

tauri-runtime-wry 结构

这个 tauri-runtime-wry crate 为 Wry 实现运行时接口

来源

示例

Tauri 包含示例应用程序来演示用法

API 示例

API 示例演示了如何使用 Tauri API,并作为参考实现

examples/api/
├── src/               # Frontend code
├── src-tauri/         # Rust backend code
│   ├── Cargo.toml     # Rust dependencies
│   ├── tauri.conf.json # Tauri configuration
│   └── src/main.rs    # Entry point
└── package.json       # NPM dependencies

来源

构建系统

Tauri 使用 Rust 的 Cargo 和 JavaScript 包管理器相结合

来源

构建过程由 tauri-cli crate 协调,它

  1. 构建前端资源
  2. 编译 Rust 代码
  3. 打包应用程序以进行分发