Execute one command (or mount one Node.js middleware) and get an instant high-performance GraphQL API for your PostgreSQL database!
At Graphile we love GraphQL so much we named ourself for our love of it! This
repository houses many of the Graphile packages that relate to GraphQL (or
relate to the packages that relate to GraphQL, or relate to those package…);
the two headline projects are Grafast and PostGraphile but there’s
many other packages, a fair few of which can be used independently - see below
for more details.
Grafast: A cutting-edge planning and execution engine for
GraphQL.js ─ use this as a drop-in replacement for the execute
method from
GraphQL.js and by moving from traditional resolvers to Grafast “plan
resolvers” you’ll be able to leverage the declarative nature of GraphQL requests
to execute your business logic in the most efficient way, leading to reduced
server load and happier customers. Use this if you’re building your own GraphQL
schemas and want the best performance and efficiency without having to put much
extra effort in.
PostGraphile: An incredibly low-effort way to build a well
structured and high-performance GraphQL API backed primarily by a PostgreSQL
database. Our main focusses are performance, automatic best-practices and
customisability/extensibility. Use this if you have a PostgreSQL database and
you want to use it as the “source of truth” for an auto-generated GraphQL API
(which you can still make significant changes to). NOTE: thanks to
graphile-export you can also use this as a starting point for an API that
you then manage yourself.
➡️ For PostGraphile V4 see the legacy branch |
---|
Here’s a rough breakdown of the main packages:
\"\"\"
graphile-build
that understand@dataplan/pg
(i.e. PostgreSQL) services and can generate types, relations,lru-cache
To help us develop this software sustainably, we ask all individuals and
businesses that use it to help support its ongoing maintenance and development
via sponsorship.
And please give some love to our featured sponsors 🤩:
![]() The Guild * |
![]() Dovetail * |
![]() Stellate * |
Steelhead * |
* Sponsors the entire Graphile suite
Originally what is now Grafast (and was previously DataPlanner) was known by
the codename “Graphile Crystal.” This lead us to use the 🔮 emoji to represent
the project in secret before we announced it publicly, as a codeword for those
in the know. Now that Grafast is the name for our planning and execution
engine and we needed a name for the monorepo that wasn’t too GraphQL specific
(since there are things in here that aren’t strictly related to GraphQL) and we
figured that calling it the Crystal monorepo would honour our original nickname
for the project. Rumours that the name was inspired by the maintainers’
crystal wedding anniversary
are greatly exaggerated.