pgrust v0.4-beta is a beta: it shows what is coming in v0.4 while we finish stabilizing the rest. Read the release post: https://pgrust.com/blog/pgrust-v0-4-beta/
What's new
- Gravity, a new query engine. Gravity runs every query and every kind of statement (DML with ON CONFLICT and RETURNING, triggers, row locks, cursors, PL/pgSQL and SPI, COPY) with PostgreSQL's semantics, on columnar tables and on the ordinary row store alike. It replaces our previous engine and runs analytical queries as much as 3x faster than ClickHouse. Its JIT compiles each plan to AArch64 or x86-64 machine code, and to WebAssembly in the browser build.
- pgrcolumnar grows up. MVCC snapshots, transactional writes, a row-store front for small inserts, UPDATE and DELETE through delete vectors, background compaction, WAL logging (crash safety and replication), non-unique B-tree, hash, GiST, SP-GiST and GIN indexes, row locks, and a
sorted_bytable option. - Automatic memory management. One memory budget covers the buffer pool, the columnar caches and running queries. Near the memory limit pgrust cancels the statement holding the most memory instead of letting the OS kill the server.
- jsonb statistics.
ANALYZEcollects statistics insidejsonbcolumns, and the planner uses them for->,->>,#>,#>>,?,?|and?&. - The condition cache. Filter results on columnar tables are reused across statements over the same immutable data. On by default;
SET pgrust.condition_cache = offturns it off. - pgrust's own
initdbandpsqlship in every tarball, so no PostgreSQL install is needed. - Extensions. We now support a wide variety of extensions, including pgvector, pg_cron, pg_stat_statements, pg_trgm, hstore, pgcrypto, postgres_fdw and most of contrib.
Install
Each tarball has a .sha256 next to it; MANIFEST.txt lists them all.
| Tarball | Runs on |
|---|---|
pgrust-0.4-beta-linux-x86_64.tar.gz
| Linux, any x86-64 CPU (glibc 2.34+) |
pgrust-0.4-beta-linux-aarch64.tar.gz
| Linux, any 64-bit Arm CPU (glibc 2.34+) |
pgrust-0.4-beta-linux-x86_64-znver3.tar.gz
| Linux, tuned for AMD Zen 3 and newer |
pgrust-0.4-beta-linux-aarch64-neoverse-v2.tar.gz
| Linux, tuned for Neoverse-V2 (AWS Graviton4, NVIDIA Grace) |
pgrust-0.4-beta-macos-arm64.tar.gz
| macOS 11+, Apple Silicon |
pgrust-0.4-beta-macos-x86_64.tar.gz
| macOS 11+, Intel |
pgrust-0.4-beta-macos-universal.tar.gz
| macOS 11+, both |
Docker: docker run -d --name pgrust -e POSTGRES_PASSWORD=secret -p 5432:5432 malisper/pgrust:v0.4-beta (multi-arch; latest still points to v0.3).
The Quickstart in the README has the full steps.
Known limitations
- The macOS binaries are signed ad hoc, not notarized; download them with curl (see the README) or clear the quarantine flag.