Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/graphile/graphile-engine
Monorepo home of graphile-build, graphile-build-pg, graphile-utils, postgraphile-core and graphql-parse-resolve-info. Build a high-performance easily-extensible GraphQL schema by combining plugins!
https://github.com/graphile/graphile-engine
Last synced: 4 days ago
JSON representation
Monorepo home of graphile-build, graphile-build-pg, graphile-utils, postgraphile-core and graphql-parse-resolve-info. Build a high-performance easily-extensible GraphQL schema by combining plugins!
- Host: GitHub
- URL: https://github.com/graphile/graphile-engine
- Owner: graphile
- Created: 2017-06-22T07:36:53.000Z (over 7 years ago)
- Default Branch: v4
- Last Pushed: 2024-09-20T10:24:13.000Z (3 months ago)
- Last Synced: 2024-11-26T06:05:21.418Z (18 days ago)
- Language: JavaScript
- Homepage: https://www.graphile.org/
- Size: 8.35 MB
- Stars: 762
- Watchers: 11
- Forks: 129
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- awesome-list - graphile-engine - build, graphile-build-pg, graphile-utils, postgraphile-core and graphql-parse-resolve-info. Build a high-performance easily-extensible GraphQL schema by combining plugins! | graphile | 653 | (JavaScript)
README
# Graphile Engine
[![Discord chat room](https://img.shields.io/discord/489127045289476126.svg)](http://discord.gg/graphile)
[![Package on npm](https://img.shields.io/npm/v/graphile-build.svg?style=flat)](https://www.npmjs.com/package/graphile-build)
![MIT license](https://img.shields.io/npm/l/graphile-build.svg)
[![Follow](https://img.shields.io/badge/[email protected])](https://twitter.com/GraphileHQ)Graphile Engine enables you to build high-performance easily-extensible GraphQL schemas by combining plugins.
**NOTE**: _You might be looking for [PostGraphile](https://github.com/graphile/postgraphile) which is Graphile Engine applied to a PostgreSQL database._
## Crowd-funded open-source software
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.### [Click here to find out more about sponsors and sponsorship.](https://www.graphile.org/sponsor/)
And please give some love to our featured sponsors 🤩:
The Guild *
Dovetail *
Stellate *
Steelhead *
LatchBio *\* Sponsors the entire Graphile suite
## Monorepo contents
**[graphile-build][]**: The core of Graphile Engine: a plugin system that
enables you to build a GraphQL schema out of plugins with advanced performance
capabilities enabled via GraphQL look-ahead functionality.**[graphile-build-pg][]**: A selection of graphile-build plugins related to
PostgreSQL: schema introspection, generation of fields and types for all
tables, computed columns, query procedures, etc - if there's certain features
you don't want, simply don't use that plugin!**[graphile-utils][]**: A collection of helper utilities to make writing
graphile-build plugins easier.**[postgraphile-core][]**: Contains the GraphQL schema functionality of
[PostGraphile][], does not contain the web layer.**[graphql-parse-resolve-info][]**: Parses a `GraphQLResolveInfo` object into a
tree of the fields that are being requested to enable optimisations to your
GraphQL schema (e.g. we use it in `graphile-build-pg` to determine which fields
are required from the SQL database).## Brief History
Proof of concept was built by [@Benjie](https://twitter.com/benjie) in 2017,
growing out of a need for greater performance, easier extensibility and
greater customisation in [PostGraphQL][postgraphile]. Over the next year
thanks to the input of the community and ongoing development and testing,
Graphile Engine has matured into the production-ready system it is today.## Development
Below is a quick-start, for more detailed instructions, please [see the
CONTRIBUTING.md documentation in PostGraphile](https://github.com/graphile/postgraphile/blob/master/CONTRIBUTING.md).```bash
yarn
yarn lerna bootstrap
yarn watch
````yarn watch` will keep monitoring and compiling the babel files, so open
another terminal to run the tests (Note: your PostgreSQL server must be
[configured for logical decoding](packages/lds/README.md#postgresql-configuration)):```bash
createdb graphileengine_test
export TEST_DATABASE_URL="postgres:///graphileengine_test"
yarn lerna run test
```If the above succeeds, you're good to go! If not, please try again after
running `yarn install --force` and always feel free to reach out via [our
discord chat](http://discord.gg/graphile) on the #core-development channel.### Working with Docker
If you want to work in a Docker environment you can follow
[the instructions on the wiki](https://github.com/graphile/graphile-engine/wiki/Development-with-docker-compose).[postgraphile]: https://github.com/graphile/postgraphile
[lerna]: https://github.com/lerna/lerna
[graphile-build]: packages/graphile-build/
[graphile-build-pg]: packages/graphile-build-pg/
[graphile-utils]: packages/graphile-utils/
[postgraphile-core]: packages/postgraphile-core/
[graphql-parse-resolve-info]: packages/graphql-parse-resolve-info/