/automatic-api

A list of software that turns your database into a REST/GraphQL API

Primary LanguageGo

The following is a list of tools that automatically expose a REST, GraphQL, or another kind of API for your database, as well as databases with a built-in HTTP API.

Project name/link Database(s) supported API type Implementation language License GitHub stats Notes
ArangoDB ArangoDB REST C++ Apache 2.0 10414 ★; 46891 commits, latest 2020-10-21 A database with a built-in REST API. Official Docker image.
CouchDB CouchDB REST Erlang Apache 2.0 4702 ★; 12907 commits, latest 2020-10-21 A database with a built-in REST API. Official Docker image.
Datasette SQLite 3 REST Python 3 Apache 2.0 3932 ★; 1385 commits, latest 2020-10-20 Read-only. Official Docker image.
Dgraph Dgraph GraphQL (since version 2.0.0-rc1) Go Apache 2.0 14120 ★; 4973 commits, latest 2020-10-21 A database with a built-in GraphQL API. Official Docker image.
DreamFactory MySQL, PostgreSQL, SQLite, MongoDB, CouchDB, and others. REST PHP 5 Apache 2.0, proprietary (optional extras) 1109 ★; 957 commits, latest 2020-09-29 Official Docker image.
Eve MongoDB; extensions for Elasticsearch, Neo4j, SQLAlchemy (SQL databases). REST Python 2/3 BSD (three-clause) 6210 ★; 3241 commits, latest 2020-09-19 The SQLAlchemy extension isn't automatic. It requires the user to write SQLAlchemy mappings.
Hasura GraphQL Engine PostgreSQL GraphQL Haskell GNU AGPLv3 19057 ★; 2321 commits, latest 2020-10-20 Official Docker image.
HTSQL MySQL, PostgreSQL, SQLite (free); Oracle, MS SQL (proprietary) REST Python 3 Apache 2.0, proprietary (Oracle and MS SQL support) 7 ★; 1235 commits, latest 2020-08-11
neo4j-graphql Neo4j GraphQL Kotlin Apache 2.0 420 ★; 163 commits, latest 2020-03-18 Can generate a GraphQL API from an existing database or derive a new database model from a GraphQL schema and auto-generate the resolvers.
OrientDB OrientDB REST Java Apache 2.0 4224 ★; 19967 commits, latest 2020-10-20 A database with a built-in REST API. Official Docker image.
PHP-CRUD-API MySQL, PostgreSQL, MS SQL Server. REST PHP 7 MIT 2552 ★; 1780 commits, latest 2020-10-07 Supports GIS + automatic OpenAPI 3.0 docs.
PostGraphile PostgreSQL GraphQL TypeScript (Node.js) MIT 9477 ★; 1232 commits, latest 2020-10-16 Formerly "PostGraphQL", Official Docker image.
PostgREST PostgreSQL REST Haskell MIT 14895 ★; 1694 commits, latest 2020-10-15 Official Docker image.
pREST PostgreSQL REST Go MIT 2415 ★; 1195 commits, latest 2020-10-16 Official Docker image.
pRESTige MySQL REST PHP MIT 56 ★; 1038 commits, latest 2020-08-14
RESTHeart MongoDB REST Java GNU AGPLv3 632 ★; 3097 commits, latest 2020-10-20 Official Docker image.
restSQL MySQL, PostgreSQL REST JavaScript MIT 119 ★; 54 commits, latest 2018-10-18 Official Docker image.
sandman2 All supported by SQLAlchemy (MySQL, PostgreSQL, SQLite, Oracle, MS SQL, and others). REST Python 2/3 Apache 2.0 1580 ★; 243 commits, latest 2020-10-11 Official Docker image.
subZero PostgreSQL REST and GraphQL Haskell, Lua Proprietary n/a
tuql SQLite 3 or SQL infile GraphQL JavaScript (Node.js) MIT 503 ★; 67 commits, latest 2019-09-14
Webdis Redis REST C BSD (two-clause) 2319 ★; 454 commits, latest 2020-09-07 Supports pub/sub with chunked transfer encoding and WebSockets.
XgeneCloud MySQL, PostgreSQL, MS SQL, SQLite, MariaDB, Amazon Aurora REST and GraphQL JavaScript Apache 2.0 1303 ★; 37 commits, latest 2020-10-09
xmysql MySQL REST JavaScript (Node.js) MIT 4185 ★; 288 commits, latest 2020-03-26 Official Docker image.
ZenQuery PostgreSQL, MySQL, IBM Db2, Oracle Database, Microsoft SQL Server and others REST Java (JavaScript for the front-end) Apache 2.0 48 ★; 283 commits, latest 2018-10-16 Read-only.

GitHub stats updated 2020-10-21. The commit count and the latest commit date are for the default branch (usually master).

Related projects

For projects that depend on or enhance those on the list see the Related projects wiki page. Feel free to add yours.

Contributing

Your contributions are welcome! Please submit a pull request or create an issue to add a new project to the list or to update an existing one. See CONTRIBUTING for the details.

License

This document and the data in data/ are licensed under the Creative Commons Attribution 4.0 International License. By contributing you agree to release your contribution under this license.