PostgREST instantly generates a RESTful API from any PostgreSQL database, providing a standards-compliant and performant alternative to custom backends.
PostgREST is a standalone web server that automatically turns any PostgreSQL database into a RESTful API. It eliminates manual backend development by providing CRUD operations, authentication, and authorization directly through the database, ensuring a clean, fast, and secure API layer that leverages PostgreSQL's capabilities.
Backend developers and teams building APIs for PostgreSQL-based applications who want to minimize custom server code and leverage database-centric architecture.
Developers choose PostgREST for its ability to automatically generate a fully RESTful API from PostgreSQL schemas, reducing development time and ensuring data integrity by making the database the single source of truth for data, business logic, and security.
REST API for any Postgres database
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically creates REST endpoints for all tables and views with built-in filtering, sorting, and pagination, eliminating manual backend coding as highlighted in the README under 'Instant REST API'.
Built in Haskell with the Warp HTTP server and efficient connection pooling via Hasql, enabling subsecond response times for up to 2000 requests/sec, as benchmarked in the Performance section.
Handles authentication via JSON Web Tokens and delegates authorization to PostgreSQL's role-based permissions, ensuring a single declarative source of truth for security per the Security section.
Generates OpenAPI specifications for self-documenting APIs, allowing interactive exploration with tools like Swagger-UI, as mentioned in the Self-documentation part of the README.
Tightly coupled with PostgreSQL; migrating to another database system would require a complete rewrite of the API layer and business logic embedded in the database.
Auto-generated endpoints may not cover all use cases, and creating custom endpoints or complex business logic often requires database workarounds like views or stored procedures, which can be cumbersome.
Requires deep PostgreSQL expertise for roles, permissions, and constraints to implement security and logic effectively, posing a barrier for teams accustomed to application-layer development.