Ben Chuanlong Du's Blog

It is never too late to learn.

Useful Rust Crates for Database

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!


SurrealDB is an end-to-end cloud native database for web, mobile, serverless, Jamstack, backend, and traditional applications. SurrealDB reduces the development time of modern applications by simplifying your database and API stack, removing the need for most server-side components, and allowing you to build secure, performant apps quicker and cheaper. SurrealDB acts as both a database and a modern, real-time, collaborative API backend layer. SurrealDB can run as a single server or in a highly-available, highly-scalable distributed mode, with support for SQL querying from client devices, GraphQL, ACID transactions, WebSocket connections, structured and unstructured data, graph querying, full-text indexing, geospatial querying, and row-by-row permissions-based access.


rusqlite is an ergonomic wrapper for SQLite.


sled is an embedded key-value pair databases written in Rust.


indradb is a graph database written in rust.


oxigraph/ Oxigraph is a graph database implementing the SPARQL standard. Its goal is to provide a compliant, safe, and fast graph database based on the RocksDB and Sled key-value stores. It is written in Rust. It also provides a set of utility functions for reading, writing, and processing RDF files. Oxigraph is in heavy development and SPARQL query evaluation has not been optimized yet.


Skytable is a free and open-source NoSQL database that aims to provide flexible data modeling at scale. Simplicity, performance and flexibility are the guiding design principles.


bolt-rs aims to provide a comprehensive set of libraries that allow for interaction with graph database servers that support the Bolt protocol, namely, Neo4j. This set of libraries allows interacting with servers supporting versions 1 through 4.1 of the protocol, which includes Neo4j 3.1 through 4.2.


Neo4rs is a Neo4j rust driver implemented using bolt specification. This driver is compatible with neo4j 4.x versions


Qdrant is a vector similarity search engine and vector database. It provides a production-ready service with a convenient API to store, search, and manage points - vectors with an additional payload. Qdrant is tailored to extended filtering support. It makes it useful for all sorts of neural-network or semantic-based matching, faceted search, and other applications.

OLAP Specific Databases


Seafowl is an analytical database for modern data-driven Web applications. Its CDN and HTTP cache-friendly query execution API lets you deliver data to your visualizations, dashboards and notebooks by running SQL straight from the user's browser.

Time Series Databases


CeresDB is a high-performance, distributed, cloud native time-series database.


CnosDB An Open Source Distributed Time Series Database with high performance, high compression ratio and high usability.


Influxdb IOX (short for Iron Oxide, pronounced InfluxDB "eye-ox") is the future core of InfluxDB, an open source time series database. The name is in homage to Rust, the language this project is written in. It is built using Apache Arrow and DataFusion among other things.

Log Storage


Parseable is a lightweight, cloud native log observability engine. It can use either a local drive or S3 (and compatible stores) for backend data storage. Parseable is written in Rust and uses Apache Arrow and Parquet as underlying data structures. Additionally, it uses a simple, index-free mechanism to organize and query data allowing low latency, and high throughput ingestion and query.


ZincObserve is a cloud native observability platform built specifically for logs, metrics, traces and analytics designed to work at petabyte scale. It is very simple and easy to operate as opposed to Elasticsearch which requires a couple dozen knobs to understand and tune which you can get up and running in under 2 minutes. It is a drop-in replacement for Elasticsearch if you are just ingesting data using APIs and searching using kibana (Kibana is not supported nor required with ZincObserve. ZincObserve provides its own UI which does not require separate installation unlike kibana).


MinIO Rust SDK is Simple Storage Service (aka S3) client to perform bucket and object operations to any Amazon S3 compatible object storage service.

Data Layer


Dozer makes it easy to build low-latency data APIs (gRPC and REST) from any data source. Data is transformed on the fly using Dozer's reactive SQL engine and stored in a high-performance cache to offer the best possible experience. Dozer is useful for quickly building data products.


Apache OpenDal makes data accessing freely, painlessly, and efficiently.


cube.js is the semantic layer for building data applications. It helps data engineers and application developers access data from modern data stores, organize it into consistent definitions, and deliver it to every application.

Database Clients for Rust

Please refer to Database Clients for Rust for details .

Command-line Tools A simply CLI to quickly view your data. Powered by DataFusion.