Browse by type
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>