架构
Duckling 是一款 Tauri 2 桌面应用:Rust 后端(src-tauri)加 connector crate 负责数据库方言,前端为 React + TypeScript。
仓库布局
- 新增 Tauri 命令:在
src-tauri中实现,在main.rs注册,并在src/api.ts暴露薄封装。 - 保持 IPC DTO 可序列化且不含密钥,除非经由
secret_store。 connector以小型、经过测试的纯函数实现方言 SQL/行为。
持久化与密钥
持久化应用数据位于 Tauri 应用数据目录(Windows:%APPDATA%\com.duckling.dev\)。
密钥绝不存储在明文连接配置或仅 localStorage 的 blob 中;密码保存在操作系统钥匙串中。
SQL 模板变量
模板在后端渲染(Rust + minijinja,UndefinedBehavior::Strict + AutoEscape::None);前端提供纯函数帮助库(src/lib/sql/macros.ts)负责 YAML 块格式化与对话框值合并。详见 SQL 模板。

