17次发布
0.3.0 | 2024年6月4日 |
---|---|
0.2.7 | 2021年11月11日 |
0.2.2 | 2021年4月17日 |
0.2.0 | 2021年3月31日 |
0.1.1 | 2020年10月6日 |
#68 在 数据库实现
每月 820次下载
18KB
293 行
Keratin
快速搭建/快速开发,嵌入式,模块化数据库
Keratin从一开始就设计得简单而全面。适用于任何可序列化和可反序列化的结构体。
将来您可以选择如何构建Keratin:如何与之交互,使用哪种持久化数据格式,附加自己的自定义模块以处理数据...
工作进行中!!!可能不建议在生产环境中使用
使用 cargo test -- --test-threads 1
运行测试
示例
use keratin::*;
fn main() -> Result<()> {
// Choose your method of storage (Anything that implements the 'StorageEngine' trait should work)
let se = keratin::storage::LocalFsStorage;
// Create the collection (using None as the parameter defaults to a directory inside the project)
let mut coll: Collection<String> = Collection::configure(None, &se)?;
// Insert the data into the collection
let result = coll.insert("key", "something".to_owned())?;
assert!(result.is_ok());
// Get the data from the collection
let retrieved_data = coll.get(key).unwrap();
assert_eq!(retrieved_data, "something");
// Delete the entry
coll.delete(&key)?;
// Modify the data entry
coll.modify("key", "another something".to_owned())?;
let retrieved_data = coll.get("key").unwrap();
assert_eq!(retrieved_data, "another something");
}
可用的引擎
- 存储
- LocalFsStorage
- 将记录存储在本地文件系统中,作为BSON文件
- LocalFsStorage
待办事项
- 元数据字段
- 部分实现
- 实现引擎
- StorageEngine
- CacheEngine(缓存记录并帮助查询)
- 部分实现
- QueryEngine(查询记录)
- 缺失特质
- NetworkEngine(通过网络访问keratin的其他实例)
- ConfigurationEngine(如何以其他方式配置keratin?)
- AuthenticationEngine(通过凭证访问和控制keratin实例)
使用默认配置的默认项目目录布局
project folder ---src/
|
|-Cargo.toml
|
|-target/
|
|-db/---------keratin.toml (config)
|
|-data/ ------- BSON documents
依赖项
~6.5MB
~116K SLoC