1 个不稳定版本

0.1.0 2020 年 4 月 18 日

#119 in #delete


用于 2 crates

MPL-2.0 许可证

3KB

smoldb

一个基于 SQLite 的极实验性的抽象数据库接口,旨在允许以类型安全的 NoSQL-like* 方式存储与 serde 兼容的对象,具有索引功能,无需编写任何 SQL。

*实际上无法搜索任意文档,您必须提前决定要索引的内容。但是,您可以存储任意文档,这可能对某些应用足够。

这包括在 smoldb_traits 中的 trait 集合以及在 smoldb_derive 中的 proc macros 集合,所有内容都方便地在顶层 smoldb crate 中重新导出。

查看 示例 了解工作示例。

特性

  • SQL 基础
    • 插入
    • 选择
    • 更新
    • 删除
  • 扩展类型(目前所有内容都是字符串)
    • 整数
    • 字符串
    • 二进制数据

待办事项

  • 清理/拆分宏
  • Store 实现 Storage 类型泛型
  • 泛型化 serde 编码器/解码器
  • 修复索引类型以使用 &str&[u8] 分别替代 StringVec<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
~437K SLoC