Skip to content

Latest commit

 

History

History
83 lines (63 loc) · 2.15 KB

README_CN.md

File metadata and controls

83 lines (63 loc) · 2.15 KB

PoloDB

Crates.io npm version

PoloDB 是一个嵌入式 NoSQL 数据库。

特性

  • 嵌入式(不需要独立进程,不需要跨进程调用)
  • 无依赖(除了 libc,系统自带)
  • NoSQL
  • 与 MongoDB 相似的 API
  • 跨平台
  • 数据储存在一个文件里

介绍

PoloDB 是一个 Rust 实现的轻量级的嵌入式数据库。

PoloDB 几乎没有依赖(除了 libc,系统自带), 所以可以很好地跨平台(也因为 Rust 语言本身)。

PoloDB 所有数据都储存在一个文件里。PoloDB 的文件格式是稳定的,跨平台而且向后兼容的。

PoloDB 的 API 和 MongoDB 类似,易学易用。

支持的平台

理论上来说,Rust 编译器支持的平台,PoloDB 都能支持。 但是鉴于 PoloDB 是一个个人项目,个人精力有限,我只能支持以下平台:

  • macOS 10.15 x64
  • Linux x64 (Tested on Fedora 30)
  • Windows 10 x64

使用方法

开发计划

以下特性会按计划一个一个来:

  • 基本数据库功能
    • CURD
    • 事务性提交
    • 索引
    • 聚合函数
  • 命令行工具
  • 移动平台的编译
    • iOS
    • Android
    • Flutter
  • 语言绑定
    • C/C++
    • Go
    • Swift
    • Python
    • Node.js
    • Java/Kotlin
    • Dart
  • 大量测试
  • 多线程支持
  • 拓展 API
    • 数据加密
    • JavaScript 引擎
  • 可视化工具

贡献指南

模块 路径 描述
Core src/polodb_core 数据库功能的核心实现
C Library src/polodb_clib 数据库的 C FFI 实现
CLI tool src/polodb_cli 命令行工具
Node.js bindings polodb.js Node.js 绑定,用 N-API 实现
Python bindings pypolodb CPython 绑定,Extension API 实现
Swift bindings SwiftyPoloDB Swift