Stop running 7 databases. Run RedDB.
Postgres, Mongo, Redis, Pinecone, Neo4j, Influx, RabbitMQ — replaced by one engine that also answers natural-language questions across your data. For startups that can't afford a 5-person infra team.
Or self-host with npm i @reddb/cli
red://ask · connected
The stack problem
Your app should not need seven databases to answer one question.
Most startups end up paying five vendors and writing the glue between them. RedDB makes the data model a query capability instead of a separate product to deploy, sync, observe and recover.
fragmented stack
RedDB
One query surface
Insert anything. Select across everything.
RedDB lets collections carry different data semantics without forcing your app to stitch together separate APIs for every model.
Mental model
Collections are where data lives. Models are how you use it.
In RedDB, a collection is a named logical container. A collection can behave like a table, document store, graph, vector index, key-value namespace, time-series series or queue depending on what you write into it.
- users table rows
INSERT INTO users (name, email) VALUES ('Alice', 'alice@co.com') - events documents
INSERT INTO events DOCUMENT (body) VALUES ({"level":"warn"}) - identity graph edges
INSERT INTO identity EDGE (label, from, to) VALUES ('OWNS', 'alice', 'passport:AB1234567') - notes vectors
INSERT INTO notes (body) VALUES ('suspicious login') WITH AUTO EMBED (body) USING openai - settings key-value
SET CONFIG acme.risk_threshold = 'high';
SEARCH CONTEXT 'passport:AB1234567' DEPTH 2;
ASK 'who owns passport AB1234567 and what services do they use?';
- 01 tables users table indexed passport match
- 02 graph.edges identity graph_edge OWNS passport edge
- 03 vectors notes vector 0.91 semantic similarity
- 04 documents logs document warning login payload
- 05 key_values config kv risk_threshold=high
{
"ok": true,
"query": "ASK 'who owns passport AB1234567 and what services do they use?'",
"mode": "sql",
"capability": "table",
"statement": "ask",
"engine": "runtime-ai",
"record_count": 1,
"result": {
"columns": ["answer", "provider", "model", "prompt_tokens", "completion_tokens", "sources_count"],
"records": [{
"values": {
"answer": "Alice Costa owns passport AB1234567. The answer is based on the users collection, the identity graph edge, the logs document, the notes vector match and config key risk_threshold=high.",
"provider": "groq",
"model": "llama-3.3-70b-versatile",
"prompt_tokens": 1834,
"completion_tokens": 74,
"sources_count": 5
},
"nodes": {}, "edges": {}, "paths": [], "vector_results": []
}],
"stats": { "nodes_scanned": 0, "edges_scanned": 0, "rows_scanned": 0, "exec_time_us": 0 }
},
"selection": { "scope": "any" }
}why this matters
The app asks one question. RedDB builds one context set from user rows, evidence documents, graph relationships, semantic matches, configuration state and pending workflow records.
9 models, 1 engine
Stop shipping a database zoo.
One storage format, one query surface. Each collection behaves like the model your workload needs — click a card for the full surface area on its own page.
relational
Tables
SQL rows, joins and indexes — Postgres-wire compatible.
json
Documents
JSON records with optional schema, when structure is partial.
edges
Graphs
Edges and traversals — context expansion for ASK without a sidecar.
semantic
Vectors
Auto-embed on insert, similarity search, no vector DB to sync.
fast state
Key-Value
Configuration, feature flags, hot keys — millisecond reads.
tiered TTL
Cache
Tiered blob cache built into the engine: L1 memory + L2 durable, prefix and tag invalidation. Existing Redis keys port over without a rewrite.
metrics
Time-series
Retention, downsampling, native window queries.
workflows
Queues
FIFO, priority, consumer groups — durable workflow primitives.
sketches
Probabilistic
HyperLogLog, Count-Min Sketch, Cuckoo Filter — bounded-memory analytics.
Drivers
Speak the language you already write in.
First-class drivers for the languages teams ship in production. Postgres-wire on top means anything that talks to Postgres talks to RedDB.
Deploy modes
Start local. Scale out. Give agents memory.
- embedded
file://./data.rdbUse it like SQLite inside a Rust app, CLI or local tool. No daemon.
- server
red server --http :5055 --grpc :5555Expose query, admin, backup and operational APIs over HTTP and gRPC.
- agent
red mcp --stdioLet AI agents read and write durable state directly via the Model Context Protocol.
AI providers
Swap models without rewriting your app.
$ curl -fsSL https://raw.githubusercontent.com/reddb-io/reddb/main/install.sh | bash
$ npx reddb-cli@latest server --http --bind 127.0.0.1:5055
$ docker run --rm -p 5055:5055 ghcr.io/reddb-io/reddb:latest
Why not just Postgres + pgvector + Redis?
You can — it works until you also need graphs, time-series with retention, queues with consumer groups, geo, and a RAG pipeline. Then you are wiring five services and writing the glue. RedDB collapses that surface area into one engine and keeps SQL for the workload that wants SQL.
Is this production-ready? What does pre-1.0 mean for me?
The engine is in production with design partners but the public surface (HTTP, gRPC, file format) can change at minor versions. Use it where moving fast matters more than locking the API. We document every breaking change in the CHANGELOG and ship migration scripts.
read more →AGPL means I cannot ship RedDB inside my SaaS?
AGPL kicks in when you distribute or expose modifications. If you run RedDB as your database behind a SaaS, that is fine — you just cannot fork the engine into a closed-source product. Need a non-AGPL license? Contact sales.
How do I migrate from Postgres / Mongo / Pinecone?
RedDB speaks the Postgres wire protocol, so existing clients (psql, pgx, JDBC, Prisma) connect without changes. Document import is a single CLI command per collection. Vector backfill streams from any OpenAI-compatible embedding API while the new collection is being populated.
What is the difference between self-host and Cloud?
Same engine, same file format. Self-host means you run the binary, manage backups, scale yourself. Cloud is the same binary plus a control plane that handles deploys, backups, metrics and updates. There is no Cloud-only feature in the engine.
How do you handle backups, replication and multi-region?
Self-host: continuous backup hooks for major object-storage providers plus WAL archiving for point-in-time recovery. Cloud: managed backups, scheduled snapshots and (on the Scale tier) read replicas across regions.
What happens to my data if you go out of business?
Cloud writes the same .rdb file format as self-host and exports continuous backups to a bucket you own. The CLI imports those backups directly. Worst case: you keep running the open-source build with no migration.
How does it compare to SurrealDB / EdgeDB / Supabase?
SurrealDB and EdgeDB are multi-model engines but neither ships native ASK / RAG. Supabase is managed Postgres with extensions — great if Postgres is enough for you. RedDB's differentiation is the cross-model ASK plus the nine first-class data models (tables, documents, graphs, vectors, KV, cache, time-series, queues, probabilistic) in one engine, with both managed and embedded distribution.
How does performance actually compare?
Cache-hit reads land under 1ms. Bulk insert via gRPC sustains roughly 241k ops/sec on commodity hardware. OLAP-heavy GROUP BY work is currently 2–5× behind ClickHouse. Benchmarks and methodology live in the repo.
read more →How do I get support?
Self-host: GitHub Issues and the community Discord. Cloud Starter: email with a 24h response target. Cloud Scale: a dedicated Slack/Teams channel and a 99.9% SLA.
60 seconds to first query
Merge the stack. Ship the next thing.
curl | bash for the open-source build, or claim your free nano database on Cloud — no credit card, no sales call.
Or self-host with npm i @reddb/cli