用途:该技能面向使用 Appwrite Rust SDK 构建服务端 Rust 应用的场景,Rust SDK 目前为服务端 SDK,浏览器或移动端客户端认证流程建议改用 TypeScript/Web、Flutter、Apple、Android 或 React Native SDK。
安装:cargo add appwrite;cargo add tokio --features full;cargo add serde_json。也可手动在 [dependencies] 中声明 appwrite = "0.3.0"、tokio = { version = "1", features = ["full"] }、serde_json = "1"。
客户端初始化:SDK 为异步,需在 Tokio 运行时中使用,并通过 API Key 做服务端认证。使用 Client::new() 链式调用 set_endpoint、set_project、set_key,项目 ID 与 API Key 通常从环境变量读取。
主要能力:用户管理(创建、列表、获取、删除用户);数据库操作(创建数据库、表、行,查询、获取、更新、删除行);字符串列类型(varchar、text、mediumtext、longtext,其中 varchar 内联存储并计入 64 KB 行大小限制,其余为页外存储);查询方法(equal、not_equal、greater_than、less_than_equal、between、is_not_null、search、contains、order_desc、limit、offset 等);文件存储(创建桶、从路径或字节上传、列出、下载、删除文件);Functions(列出函数、创建执行、获取执行);权限(Permission 与 Role 组合);错误处理(按 status_code 与 get_message 判断)。
使用方式:方法均为异步,使用位置参数,可选参数以 Option<T> 表示,未设置时传 None;调用需 await。查询需先用 .to_string() 转换后传入 Option<Vec<String>>。行数据与 JSON 请求体使用 serde_json::json!({...})。上传使用 InputFile::from_path(...).await? 或 InputFile::from_bytes(...)。新数据库代码应使用 TablesDB,仅在既有项目明确依赖旧版 Databases API 时才使用 Databases。
限制:Rust SDK 当前仅支持服务端;旧版字符串列类型已弃用,新表应使用显式字符串列类型;varchar 全索引要求大小不超过 768,text、mediumtext、longtext 仅支持前缀索引且无需指定 size。其他功能、收费与平台支持情况暂未提供。