1 个不稳定版本
0.1.0 | 2020年4月18日 |
---|
#536 in #index
在 smoldb 中使用
14KB
200 行
smoldb
这是一个基于SQLite的非常实验性的抽象数据库接口,旨在允许类型安全的NoSQL-like*存储与索引兼容的serde
对象,而不需要编写任何SQL。
*实际上无法搜索任意文档,您必须事先决定要索引的内容。然而,您可以存储任意文档,这可能对某些应用来说已经足够。
这包括一组在smoldb_traits中的特性以及一组在smoldb_derive中的过程宏,所有内容都方便地重新导出到顶层smoldb
包中。
查看示例以获取一个工作示例。
功能
- SQL基础
- 插入
- 选择
- 更新
- 删除
- 扩展类型(目前所有内容都是字符串)
- 整数
- 字符串
- 二进制数据
待办事项
- 清理/拆分宏
- 使
Store
在Storage
类型上实现泛型 - 泛型化Serde编码器/解码器
- 将索引类型更改为使用
&str
和&[u8]
分别替换String
和Vec<u8>
使用方法
首先,定义一个可序列化并从Smoldb
派生的类型。宏#[index]
指定您希望能够使用此索引搜索对象。请注意,任何不可索引的类型都必须实现ToSql
。
#[derive(Clone, Debug, PartialEq, Smoldb, Serialize, Deserialize)]
pub struct User {
#[index]
pub id: isize,
#[index]
pub name: String,
pub email: String,
pub description: String,
}
您可以使用 Store
特性来与对象进行交互。请注意,某些方法需要使用完全限定特性语法来提供类型信息(通常是在您没有传递对象的情况下)。
依赖项
~23MB
~439K SLoC