Tauri-Specta完全类型安全命令指南
tauri-spectaCompletely typesafe Tauri commands项目地址:https://gitcode.com/gh_mirrors/ta/tauri-specta
1. 项目目录结构及介绍
Tauri-Specta 是一个旨在提供完全类型安全的Tauri命令解决方案的Rust库。以下是一般性的项目目录结构示例,当您克隆或初始化一个集成有tauri-specta
的项目时,可能会遇到的关键路径:
├── src
│ ├── main.rs # 主入口点,定义应用逻辑和Tauri初始化。
│ └── lib.rs # (可选)如果是库项目,定义API。
├── Cargo.toml # Rust项目配置文件,声明依赖和元数据。
├── tauri.conf.json # Tauri应用程序的配置文件。
├── specta.yaml # (假设存在)Specta特定配置文件,用于额外配置Specta行为。
└── README.md # 项目说明文档。
- src/main.rs : 应用程序的主要启动文件,包含Tauri的初始化以及通过Specta注解的命令定义。
- Cargo.toml : 包含所有必要的依赖项,包括
tauri-specta
及其宏。 - tauri.conf.json : 配置Tauri框架的设置,如窗口属性、构建指令等。
2. 项目的启动文件介绍
在 src/main.rs
中,您将找到应用程序的核心逻辑。特别是对于tauri-specta
项目,这包括定义使用了#[tauri::command]
和#[specta::specta]
注解的函数。这样的注解确保了您的命令不仅能在客户端被正确调用,而且类型安全,减少错误的可能性。例如:
use tauri::Runtime;
use specta::Type;
#[derive(Type)]
struct MyCustomReturnType {
message: String,
}
#[tauri::command]
#[specta::specta]
fn greet3() -> MyCustomReturnType {
MyCustomReturnType { message: "Hello from a safe typed command!".into() }
}
这段代码展示了如何定义一个可以被JavaScript调用的Rust函数,并且它的返回类型是类型化的。
3. 项目的配置文件介绍
Cargo.toml
在 Cargo.toml
文件中,你需要添加 tauri-specta
和相关的宏作为依赖:
[dependencies]
tauri = { version = "...", features = ["api"] } # 确保包含api特性以启用命令。
tauri-specta-macros = "..."
[lib]
crate-type = ["cdylib", "rlib"]
这确保了项目能编译出Tauri所需的动态链接库。
tauri.conf.json
此文件位于项目根目录下,用来配置Tauri应用的行为,比如窗口尺寸、图标、允许的Tauri API访问等。虽然不直接影响tauri-specta
的直接功能,但它是管理Tauri应用必不可少的一部分:
{
"tauri": {
"window": {
"width": 800,
"height": 600
},
"api": {
"domains": ["*"],
"allowlist": {
"greet3": {}
}
}
}
}
注意: 在api
部分的allowlist
中添加你的命令,确保它们可以从前端安全地调用。
通过以上的布局和配置,开发者可以利用tauri-specta
来创建既安全又高效的Tauri应用程序接口。
tauri-spectaCompletely typesafe Tauri commands项目地址:https://gitcode.com/gh_mirrors/ta/tauri-specta