PoloDB is an embedded JSON-based database.
- 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
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.
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 10.15 x64
- Linux x64 (Tested on Fedora 30)
- Windows 10 x64
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
- Tons of tests
- Multi-threads support
- Extension API
- Data Encryption
- JavaScript Engine
- Visualization Tools
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 |