From 4fe34079d8da42a280e9d23ec87c1b44e6dc5039 Mon Sep 17 00:00:00 2001 From: steve-chavez Date: Tue, 20 Aug 2019 14:23:05 -0500 Subject: [PATCH] Reorganize ecosystem section --- admin.rst | 4 +- ecosystem.rst | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++ index.rst | 98 +++++------------------------------------------- 3 files changed, 114 insertions(+), 90 deletions(-) create mode 100644 ecosystem.rst diff --git a/admin.rst b/admin.rst index f7075f9a6..363851656 100644 --- a/admin.rst +++ b/admin.rst @@ -84,9 +84,9 @@ However including the request header :code:`Prefer: count=exact` calculates and This is fine in small tables, but count performance degrades in big tables due to the MVCC architecture of PostgreSQL. For very large tables it can take a very long time to retrieve the results which allows a denial of service attack. The solution is to strip this header from all requests: -.. code:: +.. code-block:: postgres - Nginx stuff. Remove any prefer header which contains the word count + -- Pending nginx config: Remove any prefer header which contains the word count .. note:: diff --git a/ecosystem.rst b/ecosystem.rst new file mode 100644 index 000000000..a64c88579 --- /dev/null +++ b/ecosystem.rst @@ -0,0 +1,102 @@ +.. _eco_external_notification: + +External Notification +--------------------- + +These are PostgreSQL bridges that propagate LISTEN/NOTIFY to external queues for further processing. This allows stored procedures to initiate actions outside the database such as sending emails. + +* `diogob/postgres-websockets `_ - expose web sockets for PostgreSQL's LISTEN/NOTIFY +* `frafra/postgresql2websocket `_ - Websockets +* `matthewmueller/pg-bridge `_ - Amazon SNS +* `aweber/pgsql-listen-exchange `_ - RabbitMQ +* `SpiderOak/skeeter `_ - ZeroMQ +* `FGRibreau/postgresql-to-amqp `_ - AMQP +* `daurnimator/pg-kinesis-bridge `_ - Amazon Kinesis + +.. _eco_example_apps: + +Example Apps +------------ + +* `tatut/postgrest-ui `_ - ClojureScript UI components for PostgREST +* `priyank-purohit/PostGUI `_ - React Material UI admin panel +* `Qu4tro/pgrst-dev-setup `_ - docker-compose and tmuxp setup for experimentation. +* `subzerocloud/postgrest-starter-kit `_ - Boilerplate for new project +* `NikolayS/postgrest-google-translate `_ - Calling to external translation service +* `CodeforAustralia/heritage-near-me `_ - Elm and PostgREST with PostGIS +* `timwis/handsontable-postgrest `_ - An excel-like database table editor +* `Recmo/PostgrestSkeleton `_ - Docker Compose, PostgREST, Nginx and Auth0 +* `benoror/ember-postgrest-dynamic-ui `_ - generating Ember forms to edit data +* `ruslantalpa/blogdemo `_ - blog api demo in a vagrant image +* `timwis/ext-postgrest-crud `_ - browser-based spreadsheet +* `srid/chronicle `_ - tracking a tree of personal memories +* `diogob/elm-workshop `_ - building a simple database query UI +* `myfreeweb/moneylog `_ - accounting web app in Polymer + PostgREST +* `tyrchen/goodfilm `_ - example film api +* `begriffs/postgrest-example `_ - sqitch versioning for API +* `SMRxT/postgrest-demo `_ - multi-tenant logging system +* `PierreRochard/postgrest-boilerplate `_ - example auth back-end +* `marmelab/ng-admin-postgrest `_ - automatic database admin panel + +.. _eco_extensions: + +Extensions +---------- + +* `pg-safeupdate `_ - Prevent full-table updates or deletes +* `srid/spas `_ - allow file uploads and basic auth +* `svmnotn/postgrest-auth `_ - OAuth2-inspired external auth server +* `wildsurfer/postgrest-oauth-server `_ - OAuth2 server +* `nblumoe/postgrest-oauth `_ - OAuth2 WAI middleware +* `criles25/postgrest-auth `_ - email based auth/signup +* `ppKrauss/PostgREST-writeAPI `_ - generate Nginx rewrite rules to fit an OpenAPI spec + +.. _clientside_libraries: + +Client-Side Libraries +--------------------- + +* `Kong/py-postgrest `_ - Python +* `datrium/postgrest-pyclient `_ - Python +* `tomberek/aor-postgrest-client `_ - JS, admin-on-rest +* `hugomrdias/postgrest-url `_ - JS, just for generating query URLs +* `john-kelly/elm-postgrest `_ - Elm +* `mithril.postgrest `_ - JS, Mithril +* `lewisjared/postgrest-request `_ - JS, SuperAgent +* `JarvusInnovations/jarvus-postgrest-apikit `_ - JS, Sencha framework +* `davidthewatson/postgrest_python_requests_client `_ - Python +* `calebmer/postgrest-client `_ - JS +* `clesiemo3/postgrestR `_ - R +* `PierreRochard/postgrest-angular `_ - TypeScript, generate UI from API description +* `thejettdurham/postgrest-sharp-client `_ (needs maintainer) - C#, RestSharp +* `team142/ng-postgrest `_ - Angular app for browsing, editing data exposed over Postgrest. + +.. _eco_commercial: + +Commercial +--------------- + +* `subZero `_ - Automated GraphQL & REST API with built-in caching (powered in part by PostgREST) + +.. _eco_production: + +In Production +------------- + +* `Moat `_ +* `Catarse `_ +* `Redsmin `_ +* `Image-charts `_ +* `MotionDynamic - Fast highly dynamic video generation at scale `_ +* `Drip Depot `_ +* `Convene `_ by Thomson-Reuters +* `eGull `_ +* `Elyios `_ +* `Simply Connected Systems `_ +* `Nimbus `_ + + - See how Nimbus uses PostgREST in `Paul Copplestone's blog post `_. +* `Datrium `_ + +.. * `OpenBooking `_ +.. * `triggerFS - A realtime messaging and distributed trigger system `_ diff --git a/index.rst b/index.rst index c126cddaf..f60cccf67 100644 --- a/index.rst +++ b/index.rst @@ -141,96 +141,18 @@ Ecosystem PostgREST has a growing ecosystem of examples, and libraries, experiments, and users. Here is a selection. -Example Apps ------------- +.. toctree:: + :caption: Ecosystem + :hidden: -* `subzerocloud/postgrest-starter-kit `_ - Boilerplate for new project -* `NikolayS/postgrest-google-translate `_ - Calling to external translation service -* `CodeforAustralia/heritage-near-me `_ - Elm and PostgREST with PostGIS -* `timwis/handsontable-postgrest `_ - An excel-like database table editor -* `Recmo/PostgrestSkeleton `_ - Docker Compose, PostgREST, Nginx and Auth0 -* `benoror/ember-postgrest-dynamic-ui `_ - generating Ember forms to edit data -* `ruslantalpa/blogdemo `_ - blog api demo in a vagrant image -* `timwis/ext-postgrest-crud `_ - browser-based spreadsheet -* `srid/chronicle `_ - tracking a tree of personal memories -* `diogob/elm-workshop `_ - building a simple database query UI -* `marmelab/ng-admin-postgrest `_ - automatic database admin panel -* `myfreeweb/moneylog `_ - accounting web app in Polymer + PostgREST -* `tyrchen/goodfilm `_ - example film api -* `begriffs/postgrest-example `_ - sqitch versioning for API -* `SMRxT/postgrest-demo `_ - multi-tenant logging system -* `PierreRochard/postgrest-boilerplate `_ - example auth back-end - - -.. _clientside_libraries: - -Client-Side Libraries ---------------------- - -* `tomberek/aor-postgrest-client `_ - JS, admin-on-rest -* `hugomrdias/postgrest-url `_ - JS, just for generating query URLs -* `john-kelly/elm-postgrest `_ - Elm -* `mithril.postgrest `_ - JS, Mithril -* `lewisjared/postgrest-request `_ - JS, SuperAgent -* `JarvusInnovations/jarvus-postgrest-apikit `_ - JS, Sencha framework -* `davidthewatson/postgrest_python_requests_client `_ - Python -* `datrium/postgrest-pyclient `_ - Python -* `calebmer/postgrest-client `_ - JS -* `clesiemo3/postgrestR `_ - R -* `PierreRochard/postgrest-angular `_ - TypeScript, generate UI from API description -* `thejettdurham/postgrest-sharp-client `_ (needs maintainer) - C#, RestSharp -* `team142/ng-postgrest `_ - Angular app for browsing, editing data exposed over Postgrest. - -External Notification ---------------------- - -These are PostgreSQL bridges that propagate LISTEN/NOTIFY to external queues for further processing. This allows stored procedures to initiate actions outside the database such as sending emails. - -* `diogob/postgres-websockets `_ - expose web sockets for PostgreSQL's LISTEN/NOTIFY -* `frafra/postgresql2websocket `_ - Websockets -* `matthewmueller/pg-bridge `_ - Amazon SNS -* `aweber/pgsql-listen-exchange `_ - RabbitMQ -* `SpiderOak/skeeter `_ - ZeroMQ -* `FGRibreau/postgresql-to-amqp `_ - AMQP -* `daurnimator/pg-kinesis-bridge `_ - Amazon Kinesis - -Extensions ----------- - -* `pg-safeupdate `_ - Prevent full-table updates or deletes -* `srid/spas `_ - allow file uploads and basic auth -* `svmnotn/postgrest-auth `_ - OAuth2-inspired external auth server -* `wildsurfer/postgrest-oauth-server `_ - OAuth2 server -* `nblumoe/postgrest-oauth `_ - OAuth2 WAI middleware -* `criles25/postgrest-auth `_ - email based auth/signup -* `ppKrauss/PostgREST-writeAPI `_ - generate Nginx rewrite rules to fit an OpenAPI spec - -Commercial ---------------- - -* `subZero `_ - Automated GraphQL & REST API with built-in caching (powered in part by PostgREST) - -In Production -------------- - -* `Moat `_ -* `Catarse `_ -* `Redsmin `_ -* `Image-charts `_ -* `MotionDynamic - Fast highly dynamic video generation at scale `_ -* `Drip Depot `_ -* `OpenBooking `_ -* `Convene `_ by Thomson-Reuters -* `eGull `_ -* `Elyios `_ -* `Simply Connected Systems `_ -* `Nimbus `_ - - - See how Nimbus uses PostgREST in `Paul Copplestone's blog post `_. - -* `triggerFS - A realtime messaging and distributed trigger system `_ -* `Datrium `_ + ecosystem.rst +* :ref:`eco_external_notification` +* :ref:`eco_example_apps` +* :ref:`eco_extensions` +* :ref:`clientside_libraries` +* :ref:`eco_commercial` +* :ref:`eco_production` Testimonials ------------