diff --git a/README.md b/README.md index b73f069f4..ef0646410 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,21 @@ ![Logo](static/logo.png "Logo") -[![Build Status](https://circleci.com/gh/PostgREST/postgrest/tree/master.svg?style=shield)](https://circleci.com/gh/PostgREST/postgrest/tree/master) +[![Donate](https://img.shields.io/badge/Donate-Patreon-orange.svg?colorB=F96854)](https://www.patreon.com/postgrest) +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/postgrest) Deploy [![Join the chat at https://gitter.im/begriffs/postgrest](https://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg)](https://gitter.im/begriffs/postgrest) [![Docs](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](http://postgrest.org) -[![Hackage docs](https://img.shields.io/hackage/v/postgrest.svg?label=hackage)](http://hackage.haskell.org/package/postgrest) [![Docker Stars](https://img.shields.io/docker/pulls/postgrest/postgrest.svg)](https://hub.docker.com/r/postgrest/postgrest/) -[![Donate](https://img.shields.io/badge/patreon-donate-orange.svg?colorB=F96854)](https://www.patreon.com/postgrest) +[![Build Status](https://circleci.com/gh/PostgREST/postgrest/tree/master.svg?style=shield)](https://circleci.com/gh/PostgREST/postgrest/tree/master) +[![Hackage docs](https://img.shields.io/hackage/v/postgrest.svg?label=hackage)](http://hackage.haskell.org/package/postgrest) PostgREST serves a fully RESTful API from any existing PostgreSQL database. It provides a cleaner, more standards-compliant, faster API than you are likely to write from scratch. -### Usage +## Usage 1. Download the binary ([latest release](https://github.com/PostgREST/postgrest/releases/latest)) for your platform. @@ -24,7 +25,7 @@ API than you are likely to write from scratch. postgrest --help ``` -### Performance +## Performance TLDR; subsecond response times for up to 2000 requests/sec on Heroku free tier. If you're used to servers written in interpreted languages @@ -52,7 +53,7 @@ by * Using the PostgreSQL binary protocol * Being stateless to allow horizontal scaling -### Security +## Security PostgREST [handles authentication](http://postgrest.org/en/stable/auth.html) (via JSON Web @@ -73,7 +74,7 @@ are limited to certain templates using functions, the trigger workaround does not compromise row-level security. -### Versioning +## Versioning A robust long-lived API needs the freedom to exist in multiple versions. PostgREST does versioning through database schemas. This @@ -81,7 +82,7 @@ allows you to expose tables and views without making the app brittle. Underlying tables can be superseded and hidden behind public facing views. -### Self-documentation +## Self-documentation PostgREST uses the [OpenAPI](https://openapis.org/) standard to generate up-to-date documentation for APIs. You can use a tool like @@ -93,7 +94,7 @@ instance the number of rows returned by an endpoint is reported by - and limited with - range headers. More about [that](http://begriffs.com/posts/2014-03-06-beyond-http-header-links.html). -### Data Integrity +## Data Integrity Rather than relying on an Object Relational Mapper and custom imperative coding, this system requires you put declarative constraints @@ -107,7 +108,17 @@ See examples of [PostgreSQL constraints](http://www.tutorialspoint.com/postgresql/postgresql_constraints.htm) and the [API guide](http://postgrest.org/en/stable/api.html). -### Thanks +## Supporting development + +You can help PostgREST ongoing maintenance and development by: + +- Making a regular donation through Patreon https://www.patreon.com/postgrest + +- Alternatively, you can make a one-time donation via Paypal https://www.paypal.me/postgrest + +Every donation will be spent on making PostgREST better for the whole community. + +## Thanks The PostgREST organization is grateful to: