malisper /pgrust

Postgres rewritten in Rust, now faster than Postgres and Clickhouse

★ 5,738⑂ 222👁 46▤ 4
RustCreated 2026-04-20pgrust.com
5,738
stars
+0+7+507
222
forks
46
watchers
–
prs
–
issues
4
releases
–
discussions

README

pgrust


  A Rust rewrite of Postgres.



  
  
  



  Try pgrust in your browser →
    |  
  Discord
    |  
  Updates
    |  
  Issues




 New: Video of Michael's talk at PlanetScale on pgrust — and the slides.

 How AI Changes the Economics of JIT Compilers

 v0.4-beta is out: the release post and what's new.

pgrust is a re-implementation of Postgres meant to show what Postgres would
look like if it was built in 2026. It is wire compatible and even SQL dialect
compatible with Postgres.

Every line is Rust, written to match the behavior of the C implementation.
Rust makes it easy to re-architect several core Postgres pieces. pgrust has:

- Gravity, a new vectorized push-based, JIT compiled query engine
- A thread based concurrency model
- A query scheduler designed to keep any individual query from taking down
  your database
- An automatic memory manager: one memory budget, sized from the machine,
  covers the buffer pool, the columnar caches and running queries, and gives
  pgrust control of what happens when you're running low on memory, greatly
  reducing the chance of your whole DB being taken down by the OS OOM killer

and many other really awesome pieces. The scheduler and the memory manager go
after two of
the four horsemen behind thousands of Postgres outages.

 Quickstart

In your browser: , a full pgrust server compiled to
WebAssembly, no install.

On your machine: download a release tarball from
. Each one is self-contained: it
carries pgrust's own bin/postgres, bin/initdb and bin/psql plus the
share files they read, so you do not need a PostgreSQL install. The Linux
binaries need glibc 2.34 or newer (Debian 12, Ubuntu 22.04, RHEL/Rocky 9 and
later); the macOS binaries need macOS 11 or newer.

| Tarball | Runs on |
|---|---|
| pgrust-0.4-beta-linux-x86_64.tar.gz | any x86-64 CPU |
| pgrust-0.4-beta-linux-aarch64.tar.gz | any 64-bit Arm CPU |
| pgrust-0.4-beta-linux-x86_64-znver3.tar.gz | tuned for AMD Zen 3 and newer |
| pgrust-0.4-beta-linux-aarch64-neoverse-v2.tar.gz | tuned for Neoverse-V2 (AWS Graviton4, NVIDIA Grace) |
| pgrust-0.4-beta-macos-arm64.tar.gz | macOS on Apple Silicon |
| pgrust-0.4-beta-macos-x86_64.tar.gz | macOS on Intel |
| pgrust-0.4-beta-macos-universal.tar.gz | macOS, either (both architectures in one binary) |

The Linux builds are profile-guided optimized. The tuned builds use
instructions only those CPUs (and newer ones) have; when in doubt, take the
generic build. Every tarball has a .sha256 file next to it, and
MANIFEST.txt lists
them all.

 Linux

bash
 Pick your build: linux-x86_64, linux-aarch64, linux-x86_64-znver3 or
 linux-aarch64-neoverse-v2 (see the table above).
PLATFORM=linux-x86_64

 Download pgrust, verify the checksum and unpack it.
curl -LO "https://pgrust.com/downloads/v0.4-beta/pgrust-0.4-beta-$PLATFORM.tar.gz"
curl -LO "https://pgrust.com/downloads/v0.4-beta/pgrust-0.4-beta-$PLATFORM.tar.gz.sha256"
sha256sum -c "pgrust-0.4-be

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON