PoloDB logo

PoloDB

Rust‑powered embedded NoSQL database with MongoDB‑style API

PoloDB is a lightweight, cross‑platform Rust library offering an embedded document store with a MongoDB‑compatible API, supporting multi‑threading, multi‑sessions, and optional standalone server mode.

PoloDB banner

Overview

Overview

PoloDB provides Rust developers with a compact, document‑oriented database that can be linked directly into an application or run as a standalone server. Its API mirrors MongoDB’s query language, making it easy to adopt for teams familiar with NoSQL patterns while retaining the low‑overhead, single‑file storage model of embedded databases.

Who it’s for and how to deploy

Ideal for desktop, CLI, or server‑side tools that need fast, concurrent access to JSON‑like data without the complexity of a remote database. Include polodb_core in a Rust binary to open a local file, or launch the polodb executable to expose the MongoDB wire protocol for external clients. The library runs on any platform supported by the Rust compiler, with confirmed builds on macOS, Linux, and Windows.

Highlights

MongoDB‑like API for familiar query syntax
Embeddable library and optional standalone server
Multi‑threading and multi‑session support
Cross‑platform Rust implementation

Pros

  • Lightweight footprint suitable for client‑side storage
  • Familiar MongoDB query language reduces learning curve
  • Native Rust safety and performance
  • Flexible deployment: embedded or server mode

Considerations

  • Smaller ecosystem and tooling compared to SQLite
  • Limited platform testing (macOS, Linux, Windows only)
  • Early‑stage project; some advanced features still pending
  • No official language bindings beyond Rust yet

Managed products teams compare with

When teams consider PoloDB, these hosted platforms usually appear on the same shortlist.

Azure Cosmos DB logo

Azure Cosmos DB

Fully managed, globally distributed NoSQL database service offering multi-model support with low-latency access worldwide

MongoDB logo

MongoDB

Document-oriented NoSQL database for flexible data storage

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Rust applications needing local document storage
  • Projects preferring NoSQL over relational for client‑side data
  • Multi‑threaded services requiring concurrent sessions
  • Developers wanting MongoDB‑style API without an external server

Not ideal when

  • Environments that require the maturity of SQLite
  • Mobile platforms such as iOS and Android (not yet supported)
  • Applications needing extensive language bindings
  • Use cases demanding advanced DB features not yet implemented

How teams use it

Desktop note‑taking app

Store user notes as JSON documents locally with fast retrieval

Embedded telemetry collector

Persist sensor data using concurrent writes in a lightweight store

CLI data explorer

Run the standalone server to query local datasets via standard MongoDB tools

Game state persistence

Save player progress using a simple document schema without external dependencies

Tech snapshot

Rust98%
C++1%
Python1%
Makefile1%

Tags

cross-platformembedded-databasenosqlrustdocument-databasedatabaselocalfirst

Frequently asked questions

Is PoloDB compatible with existing MongoDB drivers?

The standalone server implements MongoDB's wire protocol, so many drivers work, though some advanced features may be missing.

Can I use PoloDB as an embedded library in a Rust binary?

Yes, import `polodb_core` and open a database file directly from your Rust application.

What platforms are officially supported?

It has been compiled and tested on macOS Big Sur x64, Linux x64 (Fedora 32), and Windows 10 x64.

Does PoloDB support transactions?

Basic transaction support is implemented and available for use.

Is there a roadmap for language bindings?

Bindings for Python and JavaScript are planned but have not been released yet.

Project at a glance

Stable
Stars
1,167
Watchers
1,167
Forks
57
LicenseApache-2.0
Repo age5 years old
Last commit3 months ago
Primary languageRust

Last synced 2 days ago