Skip to content

An embedded database built on object storage

Unlike traditional LSM-tree storage engines, SlateDB writes data to object storage to provide bottomless storage capacity, high durability, and easy replication.

Object Storage Durability

SlateDB inherits your object store’s durability. Yup, 99.999999999% durability.

Zero-Disk Architecture

SlateDB runs without disks. No more disk failures, no more disk corruption.

Simple Replication

Why write complex replication protocols when you can let your object store handle it?

Tunable Performance

Configure SlateDB to optimize for low latency, low cost, or high durability.

Scalable Readers

Supports a single writer and multiple readers. SlateDB detects and fences zombie writers.

Built in Rust

SlateDB is an embeddable library built in Rust. Use SlateDB with the language of your choice.

Getting Started

  1. Add the SlateDB crate and other dependencies to your project:

    Terminal window
    cargo add slatedb tokio --features tokio/macros
  2. Connect the database to your object store, and start working with it:

    main.rs
    use slatedb::object_store::memory::InMemory;
    use slatedb::{Db, Error};
    use std::sync::Arc;
    #[tokio::main]
    async fn main() -> Result<(), Error> {
    let object_store = Arc::new(InMemory::new());
    let db = Db::open("/tmp/slatedb_simple_example", object_store).await?;
    db.put(b"key", b"value").await?;
    match db.get(b"key").await? {
    Some(value) => println!("value: {value:?}"),
    None => println!("value not found"),
    }
    db.close().await?;
    Ok(())
    }

See a full example