PoloDB

active

by PoloDB project (Vincent Chan) · since 2020

Embedded BSON document database for Rust with a MongoDB-like API and optional wire-protocol server.

documentembedded libraryopen source (permissive)emerging

Overview

PoloDB is an embedded document database for Rust that stores BSON documents and exposes collections, filters, update operators, indexes, aggregation and transactions through a typed, serde-friendly API modelled on the MongoDB driver. Since v5 it uses RocksDB for storage, and a standalone server mode speaks part of the MongoDB wire protocol so existing drivers can connect. There are also experimental Python bindings. Releases are steady (v5.3.0 in July 2026), but the maintainers note that indexes, aggregation and the server are still evolving. It suits Rust desktop, CLI and edge apps that want MongoDB-style documents without a server.

Strengths & trade-offs

Strengths

  • +Idiomatic, typed Rust API with serde integration
  • +MongoDB-style queries, updates and aggregation in-process
  • +RocksDB storage gives solid durability and compression
  • +Optional server mode works with standard MongoDB drivers for supported operations

Trade-offs

  • −Young project; APIs and features still evolving
  • −Database is a RocksDB directory, not a single portable file
  • −First build compiles RocksDB and is slow
  • −Partial MongoDB compatibility only

Great for

  • +Rust desktop and CLI apps needing local document storage
  • +Edge services wanting MongoDB-like semantics without a server
  • +Tests that stub MongoDB with an embedded store

Think twice for

  • −Production multi-user servers
  • −Apps needing full MongoDB compatibility

Capabilities

Native or official first-party support · 6 of 25 tracked

✓Transactions
✓Secondary indexes
✓JSON
✓Durable persistence
✓Compression
✓Online schema changes
–Joins
–Full-text search
–Vector search
–Geospatial
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
Full ACID
Consistency
Strong
Schema
Schemaless
Architecture
Embedded, Client server
Query languages
MongoDB-like query API (subset)

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

compatible withMongoDB
apis & protocolsRust API, MongoDB wire protocol (partial, server mode)
client languagesRust, Python

Alternatives to PoloDB

Compare all→
SQLiteRelational75.5

The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.

polodb vs sqlite →
redbKey-Value13.8

Pure-Rust embedded key-value store: copy-on-write B-trees, ACID, and a stable file format.

polodb vs redb →
EJDBDocument4.5

Embeddable JSON document database in C, with a JQL query language and optional HTTP/WebSocket server.

polodb vs ejdb →
UnQLiteKey-Value4.1

Embedded, transactional key-value and JSON document engine in a single C file, with Jx9 scripting.

polodb vs unqlite →
NeDBDocument13.3

Pure-JavaScript embedded datastore with a MongoDB-like API; the original is unmaintained.

polodb vs nedb →
MongoDBDocument80.5

The default document database: flexible BSON documents, rich queries and built-in sharding.

polodb vs mongodb →

PoloDB FAQ

What is PoloDB?

PoloDB is a document database by PoloDB project (Vincent Chan), first released in 2020. PoloDB is an embedded document database for Rust that stores BSON documents and exposes collections, filters, update operators, indexes, aggregation and transactions through a typed, serde-friendly API modelled on the MongoDB driver. Since v5 it uses RocksDB for storage, and a standalone server mode speaks part of the MongoDB wire protocol so existing drivers can connect. There are also experimental Python bindings. Releases are steady (v5.3.0 in July 2026), but the maintainers note that indexes, aggregation and the server are still evolving. It suits Rust desktop, CLI and edge apps that want MongoDB-style documents without a server.

Is PoloDB open source?

Yes. PoloDB is open source. License: Apache License 2.0.

Does PoloDB support ACID transactions?

Yes. PoloDB supports full ACID transactions, with strong consistency.

Does PoloDB scale horizontally?

PoloDB does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run PoloDB?

You can self-host it and embed it in your application.

What is PoloDB best for?

PoloDB is a strong fit for rust desktop and CLI apps needing local document storage; edge services wanting MongoDB-like semantics without a server; and tests that stub MongoDB with an embedded store. Think twice for production multi-user servers.

What are the best alternatives to PoloDB?

Common alternatives to PoloDB include SQLite, redb, EJDB, UnQLite and NeDB. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is PoloDB?

PoloDB ranks #443 of 844 databases on the WhichDB Score (3.2/100), and #38 among document databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.