Written in Rust · Formally Verified · PostgreSQL Compatible

One database.
Every workload.
Built for AI.

High-throughput transactions, blazing-fast analytics, instant key-value access, low-latency vector search, AI agent and workflow orchestration. One powerful engine.

$ docker run -p 5432:5432 -p 8080:8080 particledbai/particledb
AI Native RAG + Vectors
175K Peak TPS (single node)
14/14 Isolation Verified
TLA+ Formally Proven
13 SDKs
PG Wire Compatible

ClickBench 43-query suite on AWS c8g.metal-48xl. Lower is better. Full results at /benchmarks/clickbench

Install. Connect. Query.

One command to install. Connect with any PostgreSQL driver. Full SQL, vectors, and KV from line one.

install

One command. That's it.

Downloads the latest binary for your platform. macOS, Linux, Docker. No dependencies.

# install ParticleDB
$ curl -fsSL get.particledb.ai | bash

# start the server
$ particledb start

# that's it — PG wire on :5432
connect

Python. 4 lines to your first query.

Use the ParticleDB SDK over REST or gRPC. Zero external dependencies.

from particledb import ParticleDB

db = ParticleDB(host="localhost", port=8080)
rows = db.query("SELECT * FROM users WHERE age > $1", [25])
for row in rows:
    print(row["name"])
vector search

Embeddings in SQL. No sidecar.

HNSW and IVFFlat indexes. Semantic search, RAG, hybrid queries — all in standard SQL.

CREATE TABLE docs (
  id SERIAL PRIMARY KEY,
  content TEXT,
  embedding VECTOR(1536)
);

CREATE INDEX ON docs
  USING hnsw (embedding vector_cosine_ops);

SELECT content FROM docs
  ORDER BY embedding <=> $1 LIMIT 10;

One database. Every workload.

Stop running separate systems for transactions, analytics, vectors, and caching.

transactions

Full ACID. 159K TPS.

MVCC with snapshot isolation. Concurrent reads never block writes. WAL for crash recovery.

BEGIN;
INSERT INTO orders (user_id, total)
  VALUES (42, 99.95);
UPDATE inventory SET qty = qty - 1
  WHERE sku = 'PDB-100';
COMMIT;
analytics

Columnar. SIMD. Sub-millisecond.

Arrow columnar format with zone maps and dictionary encoding. Grouped aggregations in single-digit milliseconds.

SELECT country, COUNT(*), AVG(revenue)
FROM events
WHERE created_at > '2026-01-01'
GROUP BY country
ORDER BY 2 DESC;

-- 10M rows: ~3.4ms
-- 100M rows: ~24ms
key-value

Redis-compatible KV. Same engine.

Full RESP protocol. Connect with redis-cli, Jedis, redis-py. Strings, lists, sets, sorted sets, hashes.

# connect with any Redis client
$ redis-cli -p 6379

SET session:abc '{"user":42}'
OK

GET session:abc
'{"user":42}'

LPUSH queue:tasks "process-order"
ZADD leaderboard 9500 "player:42"
postgresql compatible

Your tools already work.

Drop-in PG wire protocol. psql, pgAdmin, JDBC, SQLAlchemy, Prisma, Drizzle, TypeORM.

# psql
$ psql -h localhost -p 5432

# SQLAlchemy
engine = create_engine("postgresql://localhost/main")

# Prisma
DATABASE_URL="postgresql://localhost:5432/main"
ai native

Embeddings, RAG, classification — in SQL.

Built-in vector search, similarity joins, and AI functions. No external vector DB needed.

-- Hybrid search: keyword + vector
SELECT title, content
FROM articles
WHERE content ILIKE '%kubernetes%'
ORDER BY embedding <=> $1
LIMIT 10;

Install to query in 30 seconds.

One install script. Start the server. Connect with psql. Run your first query.

getting_started.py | $ python getting_started.py
import psycopg2

# connect — same as PostgreSQL
conn = psycopg2.connect("host=localhost dbname=main")
cur = conn.cursor()

# create a table
cur.execute("""
  CREATE TABLE IF NOT EXISTS users (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    embedding VECTOR(384)
  )
""")

# insert data
cur.execute("""
  INSERT INTO users (name, email)
  VALUES (%s, %s) RETURNING id
""", ["Alice", "alice@example.com"])

user_id = cur.fetchone()[0]
conn.commit()

# query
cur.execute("SELECT * FROM users")
for row in cur.fetchall():
    print(row)

conn.close()
$ curl -fsSL get.particledb.ai | bash
downloading particledb v0.8.0 (darwin-arm64)...
installed to /usr/local/bin/particledb
$ particledb start
ParticleDB v0.8.0
PG wire :5432 · gRPC :26257 · HTTP :8080
Redis :6379 · WebSocket :8081
ready — accepting connections
$ python getting_started.py
(1, 'Alice', 'alice@example.com', None)
✓ done install: 2.1s · start: 0.3s · query: 4ms

One database. Five wire protocols.

Connect how you want. Every protocol talks to the same engine, same data, same ACID guarantees.

:5432PostgreSQL Wire
:26257gRPC
:8080HTTP / REST
:6379Redis RESP
:8081WebSocket

First-class SDKs for every language.

SQL, vectors, KV, and RAG — all with typed, idiomatic APIs.

python
from particledb import ParticleDB

db = ParticleDB("localhost:5432")

# SQL
users = db.query("SELECT * FROM users WHERE age > $1", [25])

# Vector search
results = db.vector.search("docs", query_vec, limit=10)

# KV
db.kv.set("session:abc", {"user": 42})
typescript
import { ParticleDB } from 'particledb';

const db = new ParticleDB({ host: 'localhost' });

// SQL
const users = await db.query('SELECT * FROM users');

// Vector search
const similar = await db.vector.search('docs', vec);

// KV
await db.kv.set('session:abc', { user: 42 });

Ready to try ParticleDB?

Install in seconds. The quickstart covers setup, your first table, queries, and vector search — in five minutes.

Read the quickstart → View on GitHub → Documentation →