2个稳定版本
新 5.1.0 | 2024年8月23日 |
---|---|
5.0.0 | 2024年8月17日 |
66 在 数据库接口
每月下载 149 次
1MB
10K SLoC
Polodb是一个嵌入式文档数据库。
| 文档 |
简介
Polodb是一个用Rust编写的库,实现了轻量级的MongoDB。
为什么
Polodb旨在提供SQLite的现代化替代品,SQLite是目前客户端数据存储的几乎唯一选择。尽管SQLite是一个古老且稳定的软件,但它缺少一些现代功能。这就是我们开发Polodb的原因,它是NoSQL,支持多线程和多会话,并保留了SQLite的嵌入式和轻量级特性。
功能
- 简单且轻量级
- 可以是嵌入式库或独立服务器
- 易于学习和使用
- NoSQL
- 类似MongoDB的API
- 跨平台
快速入门
Polodb易于学习和使用
use polodb_core::Database;
use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize)]
struct Book {
title: String,
author: String,
}
let db = Database::open_path(db_path)?;
let collection = db.collection::<Book>("books");
collection.insert_one(Book {
title: "The Three-Body Problem".to_string(),
author: "Liu Cixin".to_string(),
})?;
包
- polodb:与MongoDB的线协议兼容的Polodb独立服务器。
- polodb_core:Polodb的核心库,可以嵌入到您的应用程序中。
平台
理论上,Polodb支持所有Rust编译器支持的平台。但Polodb目前是一个个人项目。受限于我的时间,我仅在以下平台上编译和测试过
- macOS Big Sur x64
- Linux x64(在Fedora 32上测试过)
- Windows 10 x64
手册
路线图
功能将按顺序逐一实现。
- 基本数据库API
- CRUD
- 事务
- 序列化/反序列化
- 索引(Alpha)
- 聚合
- 命令行工具
- 平台
- MacOS
- Linux
- Windows
- Web浏览器(WIP)
- iOS
- Android
- 可视化工具
依赖项
31-43MB
~736K SLoC