appdb
appdb 是一个给 Tauri 嵌入式 SurrealDB 使用的轻量辅助库。
目标只有几个:
- 用
#[derive(Store)]给模型挂上直接可用的仓储能力 - 用 prelude 导出一个简单的使用面
- 保持 API 以
save、get、list这种直观名字为主 - 给需要加密的字段提供
Sensitive派生支持
工作区结构
core: 主库,发布后通过cargo add appdb使用macros: 过程宏,供core复用并一并导出
常用入口
appdb::prelude::*: 常用类型和能力的集中导出appdb::connection: 数据库初始化和运行时#[derive(Store)]: 业务模型的主入口appdb::graph::GraphRepo: relation table 辅助appdb::query: 原始 SQL 与带 bind 的查询辅助
最小示例
use *;
use Store;
use ;
use SurrealValue;
async
Store + Sensitive 联动
use *;
use ;
use ;
use SurrealValue;
对这种模型,业务代码仍然直接使用 Profile 调 save / get / list 等 Store API;#[secure] 字段会在仓储边界自动加密落库、读回时自动解密。第一版里 create_return_id 不支持敏感模型,且 #[secure] 字段不能参与 #[unique] 或自动 lookup。
图关系示例
use *;
let rel = ;
relate_at.await?;
let targets = out_ids.await?;
原始查询
优先用带 bind 的形式:
use *;
let stmt = new.bind;
let value: = query_bound_return.await?;
说明
- 更细的行为说明已经写进源码里的 rustdoc,直接看对应函数和结构体即可。
- 这个库偏向单机嵌入式使用场景,不追求大而全的抽象层。