This project is in early development and highly unstable. APIs, storage format, and wire protocol behavior will change without notice. Do not use in production. Contributions and feedback welcome — just know that everything is actively being reworked.
PostgreSQL-compatible database built on BEAM + Rust.
Same SQL. Same drivers. 100x less memory per connection.
PostgreSQL forks an OS process for every connection — 14.6 MB each, even idle. 50 idle connections cost 729 MB. This architecture hasn't changed since 1986.
EvolvSQL replaces the process-per-connection model with BEAM lightweight processes (~2 KB active, 0 KB hibernated) and a Rust query engine for parsing and execution.
| PostgreSQL 17 | EvolvSQL | |
|---|---|---|
| Per idle connection | 14.6 MB | 0 KB (hibernated) |
| Per active connection | 14.6 MB | ~15 KB |
| 50 connections overhead | +729 MB | +768 KB |
| Connection model | fork() per conn | BEAM process |
| MVCC | Dead tuples + VACUUM | Undo-log (planned) |
| Cold start | 0 ms | 0 ms |
Client (psql, any PG driver)
→ BEAM process (2 KB per connection, supervised)
→ Rust NIF (parse + execute via pg_query)
→ Shared storage (RwLock, no per-connection duplication)
BEAM handles connections, wire protocol, fault tolerance, and clustering.
Rust handles SQL parsing (via pg_query — same parser PostgreSQL uses), expression evaluation, JOINs, and storage.
vector(N) type with <-> (L2), <=> (cosine), <#> (inner product) operators — pgvector wire-compatible# Clone
git clone https://github.com/JagritGumber/evolvsql.git
cd evolvsql
# Dependencies: Elixir ~1.18, OTP 27, Rust (2024 edition)
mix deps.get
# Build the Rust NIF
cd native/engine && cargo build --release && cd ../..
# Start EvolvSQL
mix run --no-halt
# Connect with psql (default port 5432)
psql -h localhost -p 5432 -U postgres
| Phase | Status | What |
|---|---|---|
| Wire protocol + basic CRUD | Done | psql connects, INSERT/SELECT/UPDATE/DELETE |
| JOINs + aggregates | Done | All JOIN types, GROUP BY, HAVING, ORDER BY |
| Subqueries | Done | IN, EXISTS, scalar, derived tables |
| Connection hibernation | Done | 0 KB idle connections |
| Vector type (pgvector compat) | Done | vector(N), distance operators |
| Persistent storage | Next | B-tree indexes, WAL, crash recovery |
| ACID transactions | Planned | BEGIN/COMMIT/ROLLBACK, isolation levels |
| Undo-log MVCC | Planned | Zero bloat, no VACUUM |
| BEAM clustering | Planned | Multi-node distribution |
See FEATURES.md for the complete specification.
Memory: 50 idle connections
| PostgreSQL 17 | EvolvSQL | |
|---|---|---|
| Additional memory | +729 MB | +0 KB |
| Per connection | 14.6 MB | 0 KB (hibernated) |
Query throughput
EvolvSQL achieves 2x the query throughput of PostgreSQL on equivalent hardware in initial benchmarks.
Business Source License 1.1 — the same license used by CockroachDB.
Converts to AGPL-3.0 five years after each version's release.
$ claude mcp add evolvsql \
-- python -m otcore.mcp_server <graph>