Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

PoloDB

Build Status Crates.io npm version PYPI version

PoloDB is an embedded JSON-based database.

中文版

Features

  • Simple/Lightweight/Easy to learn and use
  • Various language bindings
  • Embedded (No standalone processes, no cross-process calls)
  • No runtime dependency
  • NoSQL
  • MongoDB-like API
  • Cross-Platform
  • Store data in ONE file

Introduction

PoloDB is a library written in Rust that implements a lightweight MongoDB.

PoloDB has no dependency(except for libc), so it can be easily run on most platforms (thanks for Rust Language).

The data of PoloDB is stored in a file. The file format is stable, cross-platform, and backwards compatible.

The API of PoloDB is very similar to MongoDB. It's very easy to learn and use.

Platform

Theoretically, PoloDB supports all platforms that the Rust compiler supports. But PoloDB is a personal project currently. Limited by my time, I have only compiled and tested on the following platforms:

  • macOS Big Sur x64
  • Linux x64 (Tested on Fedora 32)
  • Windows 10 x64

Manual

Developing Plan

The features will be implemented one by one in order.

  • Basic database API
    • CURD
    • Transactions
    • Indexes
    • Aggregation
  • Command line Tools
  • Mobile Platform Compilation
    • iOS
    • Android
    • Flutter
  • Language bindings
    • C/C++
    • Go
    • Swift (Repo)
    • Python (Doc)
    • Node.js (Doc)
    • Java/Kotlin
    • Dart
  • Tons of tests
  • Multi-threads support
  • Extension API
    • Data Encryption
    • JavaScript Engine
  • Visualization Tools

Contribute

Module Path Description
Core src/polodb_core The core implementation of the Database
C Library src/polodb_clib The C FFI implementation of PoloDB
CLI tool src/polodb_cli The command line tool of PoloDB
Node.js bindings polodb.js The Node.js binding using N-API
Python bindings pypolodb The CPython binding using Extension API
Swift bindings SwiftyPoloDB The Swift binding
You can’t perform that action at this time.