High-performance storage server on cloud object stores

                        ╔═ lanbuffer ═══════════════════════════════╗
╔════════════╗          ║                                           ║
║  client(s) ║──API──▶  ║  ┏━━━━━━━━━━━━━━━┓     ┏━━━━━━━━━━━━━━┓   ║
║            ║          ║  ┃  Memory /     ┃◀──▶ ┃     Lance    ┃   ║
╚════════════╝          ║  ┃  NVMe Cache   ┃     ┗━━━━━━━━━━━━━━┛   ║
                        ║  ┗━━━━━━━━━━━━━━━┛              │         ║
                        ║                     ┌───────────▼───────┐ ║
                        ║                     │ Object Storage    │ ║
                        ║                     │ (S3)              │ ║
                        ║                     └───────────────────┘ ║
                        ╚═══════════════════════════════════════════╝

What is LanBuffer?

LanBuffer is a fast, object-storage-first retrieval engine inspired by turbopuffer.

It keeps state in S3-compatible object storage and uses RAM plus NVMe as a compute-side cache, so hot data stays fast while cold data stays cheap.

LanBuffer builds on Lance for vector search, full-text search, and hybrid retrieval, and also exposes FS and KV interfaces for integration.

query -> vector search + full-text search -> hybrid merge -> top-k docs

Multiple protocols, one core

A single core powers multiple interfaces: a LanceDB-compatible Table API for retrieval, plus filesystem (NFS/9P/NBD) and KV APIs.

Pick the interface you need without running separate systems.

                 ┌──────────────────────────────┐
HTTP  :7001  ───▶│ Table API (vector / fts)     │
HTTP  :7002  ───▶│ KV API (CRUD / scan)         │
NFS/9P/NBD   ───▶│ FS API                        │
gRPC  :7000  ───▶│ Admin (checkpoints, stats)    │
                 └──────────────┬───────────────┘
                                ▼
                          ┌──────────┐
                          │ LanBuffer │
                          └────┬─────┘
                               ▼
                        Cache (RAM + NVMe)
                               ▼
                        Object Storage (S3)

Built-in encryption, compression, and caching

Transparent at-rest encryption (XChaCha20-Poly1305 with Argon2id-derived keys).

Transparent compression (LZ4 or Zstd).

A hot cache (RAM + NVMe) accelerates frequently accessed blocks and query-time work.

Write: client -> compress -> encrypt -> cache -> object store
Read : object store -> cache (hot) -> decrypt -> decompress -> client
                 \\-> cache (miss) ------------------------------^

Point-in-time recovery and cloud-native

Named checkpoints let you snapshot and restore to a previous state.

Designed for object storage backends (S3/R2/GCS/Azure) with stateless compute nodes and horizontally scalable capacity.

time --------------------------------------------------------->

t0  write data
t1  checkpoint "before-upgrade"  o
t2  write more data
t3  checkpoint "daily"           o

restore("before-upgrade") -> state at t1