跳转到内容

Rust 后端命令

需要原生能力(文件、系统、重计算)时,在插件的 backend/mod.rs 直接写命令即可, 构建期自动扫描,无需改任何框架文件

#[tauri::command]
pub fn timestamp_tool_now() -> Result<i64, crate::error::AppError> {
Ok(std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.map(|d| d.as_secs() as i64)
.map_err(|e| crate::error::AppError::custom("TIME_ERROR", e.to_string())))
}

前端调用:

import { ipc } from '@/core/ipc';
const now = await ipc<number>('timestamp_tool_now');
约定说明
位置命令必须定义在 plugins/<id>/backend/mod.rs;其余 .rs 作为它的子模块(pub mod xxx;
命名函数名 = 前端调用名,带 <plugin_id>_ 前缀防冲突;全局唯一
签名一律返回 Result<T, AppError>
参数Rust 侧 snake_case;前端传 camelCase 会自动映射
错误错误自动进入日志与全局 toast,无需手动处理

命令可以独占一行或与 #[tauri::command] 同行,属性带参数 (如 #[tauri::command(rename_all = "camelCase")])也可识别。

框架自有命令(db / http / updater 等)的清单在 src-tauri/framework-commands.json, 是单一事实源,供 build.rs 与前端命令名生成共用。新增框架命令需在此追加, 否则不会被注册,前端类型检查也会报错。