pgrust

A Postgres rewrite in Rust.

Postgres 18.3

Regression queries: 46k+

License: AGPL-3.0

Browser demo

Discord

Mailing list

Issues

pgrust targets compatibility with Postgres 18.3 and matches Postgres's

expected output across more than 46,000 regression queries.

pgrust is disk compatible with Postgres and can boot from an existing Postgres

18.3 data directory.

The goal is to make Postgres easier to change from the inside: keep the behavior

Postgres-shaped, keep the real Postgres tests as the oracle, and use Rust plus

AI-assisted programming to explore deeper server changes.

Status

pgrust is not production-ready yet. It is not performance optimized yet.

Existing Postgres extensions and procedural language extensions such as

PL/Python, PL/Perl, and PL/Tcl are not generally compatible yet. Some bundled

contrib modules are already ported, and more compatibility may be possible over

time.

Roadmap

multithreaded Postgres internals

built-in connection pooling

better JSON-heavy workload support

fast forking and branching workflows

storage experiments, including no-vacuum designs

runtime guardrails for bad queries and AI-generated SQL

fewer sudden bad plan switches

Try It

Try the WebAssembly demo at https://pgrust.com.

https://pgrust.com

Docker:

This uses the psql client inside the Docker image.

malisper/pgrust:latest currently points at the same release, but v0.1 is the

pinned launch image.

Build From Source

macOS:

Debian/Ubuntu:

Build:

Create a data directory:

Run pgrust:

Connect:

Regression Tests

Run the Postgres regression tests against pgrust:

The runner uses pgrust's own --initdb plus the vendored Postgres 18.3 test

files in this repository. It needs a Postgres 18 psql client on PATH; if

psql is somewhere else, set PGRUST_PSQL=/path/to/psql.

Verified launch result: pgrust matched Postgres's expected output across more

than 46,000 regression queries.

History

This repository now contains the newer pgrust implementation that reached the

regression-test milestone.

The older public implementation is archived on

archive/pre-fabled-2026-06-23.

Background:

Original pgrust launch: https://malisper.me/pgrust-rebuilding-postgres-in-rust-with-ai/

https://malisper.me/pgrust-rebuilding-postgres-in-rust-with-ai/

67% regression update: https://malisper.me/pgrust-update-at-67-postgres-compatibility-and-accelerating/

https://malisper.me/pgrust-update-at-67-postgres-compatibility-and-accelerating/

Four Horsemen roadmap: https://malisper.me/the-four-horsemen-behind-thousands-of-postgres-outages/

https://malisper.me/the-four-horsemen-behind-thousands-of-postgres-outages/

Feedback

Please open an issue if something breaks, if setup is confusing, or if there is

a Postgres improvement you want to see first.

Contact

Email: maintainers@pgrust.com

maintainers@pgrust.com

Discord: https://discord.gg/FZZ4dbdvwU

https://discord.gg/FZZ4dbdvwU

Mailing list: https://malisper.me/subscribe/

https://malisper.me/subscribe/

License

pgrust is licensed under AGPL-3.0. See LICENSE.