2个稳定版本

5.1.0 2024年8月23日
5.0.0 2024年8月17日

66数据库接口

Download history 149/week @ 2024-08-15

每月下载 149

Apache-2.0

1MB
10K SLoC

Crates.io Discord docs.rs License

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