Awesome Go

pREST

CategoryDatabase
SubcategoryDatabase Tools
Stars0

Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new

About pREST

pRESTd

Tests GoDoc Go Report Card codecov Homebrew Discord

pREST (PostgreSQL REST), is a simple production-ready API, that delivers an instant, realtime, and high-performance application on top of your existing or new Postgres database.

PostgreSQL version 9.5 or higher

Contributor License Agreement - CLA assistant

Problems we solve

The pREST project is the API that addresses the need for fast and efficient solution in building RESTful APIs on PostgreSQL databases. It simplifies API development by offering:

  1. A lightweight server with easy configuration;
  2. Direct SQL queries with templating in customizable URLs;
  3. Optimizations for high performance;
  4. Enhanced developer productivity;
  5. Authentication and authorization features;
  6. Pluggable custom routes and middlewares.

Overall, pREST simplifies the process of creating secure and performant RESTful APIs on top of your new or old PostgreSQL database.

Read more.

Why we built pREST

When we built pREST, we originally intended to contribute and build with the PostgREST project, although it took a lot of work as the project is in Haskell. At the time, we did not have anything similar or intended to keep working with that tech stack. We've been building production-ready Go applications for a long time, so building a similar project with Golang as its core was natural.

Additionally, as Go has taken a huge role in many other vital projects such as Kubernetes and Docker, and we've been able to use the pREST project in many different companies with success over the years, it has shown to be an excellent decision.

1-Click Deploy

Heroku

Deploy to Heroku and instantly get a realtime RESTFul API backed by Heroku Postgres:

Deploy to Heroku

Documentation

Visit https://docs.prestd.com/

Testing

Run the test suite inside Docker (no local Postgres required):

make test

Or directly with Docker Compose:

docker compose -f docker-compose-test.yml up --abort-on-container-exit --exit-code-from tests
docker compose -f docker-compose-test.yml down -v --remove-orphans

The tests service runs ./testdata/runtest.sh, provisioning databases and executing Go tests.

Example: Docker Build

You can build the Docker image locally for development (this compiles the code from source):

docker build -t prest/prest:latest .

For release builds, GoReleaser uses the same Dockerfile but injects version information via build arguments:

docker build \
  --build-arg VERSION=v1.0.0 \
  --build-arg COMMIT=hash \
  --build-arg DATE=2026-02-11 \
  -t prest/prest:latest .

Frequently Asked Questions

What is pREST?

pREST is a Database library for the Go programming language. Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new

How do I install pREST?

Install pREST with the Go module system using `go get prest/prest`. Check the repository for the current installation instructions.

What category does pREST belong to?

pREST is listed under Database, specifically Database Tools.

← Back to Database Tools