Rustberg
Zero-dependency Apache Iceberg REST Catalog
A production-ready, single-binary Apache Iceberg REST Catalog written in 100% Rust. No JVM, no PostgreSQL, no C++ dependencies.
Why Rustberg?
Rustberg takes a different approach to Iceberg catalogs:
# That's it. One binary, no dependencies.
./rustberg --storage s3://my-bucket/catalog
No JVM warmup. No connection pool configuration. No external database. Just download and run.
Key Features
| Feature | Description |
|---|---|
| 🚀 Instant Startup | Sub-10ms cold start. No JVM warmup, no connection pooling delays. |
| 📦 Single Binary | One small executable. Deploy anywhere: Kubernetes, Lambda, bare metal, edge. |
| 📚 Library Support | Use as a crate to build custom Lambda handlers or embed in your application. |
| 🔐 Security First | API Keys (Argon2id), JWT/OIDC, Cedar authorization, TLS 1.3, rate limiting. |
| ☁️ Cloud Native | S3, GCS, Azure Blob storage. Horizontal scaling with SlateDB. |
| 🔌 Full REST API | Complete Iceberg REST spec: tables, views, transactions, credentials, metrics. |
| 🛡️ Multi-Tenant | Hard tenant isolation, Cedar policies, audit logging, credential vending. |
Architecture
┌──────────────────────────────────────────────────────────────────┐
│ Rustberg Binary │
├──────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ REST API │ │ Auth │ │ Cedar │ │
│ │ (Axum) │ │ (JWT/Key) │ │ AuthZ │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ │ │
│ ┌───────────────────────▼───────────────────────┐ │
│ │ Iceberg Catalog │ │
│ │ • Namespaces • Tables • Views • Commits │ │
│ └───────────────────────┬───────────────────────┘ │
│ │ │
│ ┌───────────────────────▼───────────────────────┐ │
│ │ SlateDB (Pure Rust) │ │
│ └───────────────────────┬───────────────────────┘ │
│ │ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ file:// │ │ s3:// │ │ gs:// │ │ az:// │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└──────────────────────────────────────────────────────────────────┘
Use Cases
| Use Case | Why Rustberg? |
|---|---|
| Development | Instant startup, zero config, embedded in tests |
| CI/CD Testing | Single binary, no Docker dependencies |
| Edge Computing | Tiny footprint, runs anywhere |
| Kubernetes | Helm chart included, horizontal scaling |
| Single-Node Production | Battle-tested, full feature set |
Sponsors
Rustberg is open source under the Apache License 2.0.
Built with ❤️ in Rust