Show HN: Tonbo – an embedded database for serverless and edge runtimes

https://news.ycombinator.com/rss Hits: 8
Summary

Tonbo Website | Rust Doc | Blog | Community Tonbo is an embedded database for serverless and edge runtimes. Your data is stored as Parquet on S3, coordination happens through a manifest, and compute stays fully stateless. Why Tonbo? Serverless compute is stateless, but your data isn't. Tonbo bridges this gap: Async-first : The entire storage and query engine is fully async, built for serverless and edge environments. : The entire storage and query engine is fully async, built for serverless and edge environments. No server to manage : Data lives on S3, coordination via manifest, compute is stateless : Data lives on S3, coordination via manifest, compute is stateless Arrow-native : Define rich data type, declarative schemas, query with zero-copy RecordBatch : Define rich data type, declarative schemas, query with zero-copy Runs anywhere : Tokio, WASM, edge runtimes, or as a storage engine for building your own data infrastructure. : Tokio, WASM, edge runtimes, or as a storage engine for building your own data infrastructure. Open formats: Standard Parquet files readable by any tool When to use Tonbo? Build serverless or edge applications that need a durable state layer without running a database. Store append-heavy or event-like data directly in S3 and query it with low overhead. Embed a lightweight MVCC + Parquet storage engine inside your own data infrastructure. Run workloads in WASM or Cloudflare Workers that require structured persistence. Quick Start use tonbo :: { db :: { AwsCreds , ObjectSpec , S3Spec } , prelude :: * } ; # [ derive ( Record ) ] struct User { # [ metadata ( k = "tonbo.key" , v = "true" ) ] id : String , name : String , score : Option < i64 > , } // Open on S3 let s3 = S3Spec :: new ( "my-bucket" , "data/users" , AwsCreds :: from_env ( ) ? ) ; let db = DbBuilder :: from_schema ( User :: schema ( ) ) ? . object_store ( ObjectSpec :: s3 ( s3 ) ) ? . open ( ) . await ? ; // Insert let users = vec ! [ User { id : "u1" . into ( ) , name : "Alice" ....

First seen: 2025-12-24 09:44

Last seen: 2025-12-24 17:45