graphql-engine

module
v1.0.0-alpha06 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2018 License: AGPL-3.0

README

Hasura GraphQL Engine

Docs Release CircleCI Docker pull Docker image size

Chat on Discord Follow on Twitter

Hasura GraphQL Engine Banner

Hasura GraphQL Engine is a performant GraphQL server that provides ready-to-use GraphQL API over Postgres by auto-generating GraphQL schema and corresponding resolvers.

  • Make powerful queries: built-in filtering, pagination, and pattern search arguments and operators
  • Works with existing database: point it to an existing, living Postgres database to get instant GraphQL API
  • Fine-grained access control: dynamic access control that integrates with your auth
  • Light-weight & performant: 20MB docker image; ~60MB RAM @ 1000 req/s; multi-core aware
  • Dev friendly: admin UI & Rails-inspired schema migrations
  • Postgres ❤️: supports Postgres types (PostGIS/geo-location, etc.), turns views to graphs, trigger stored functions or procedures with mutations

Quickstart - Setup on Heroku

no credit-card required; sign-up may be required

  1. Click on the following button to deploy GraphQL Engine on Heroku and provision the free Postgres add-on:

    Deploy

  2. Open the admin console

    Visit https://<app-name>.herokuapp.com (replace <app-name> with your app name) to open the admin console.

  3. Make your first GraphQL query

    Create test tables and instantly run your first query. Follow this simple guide.

Other deployment methods

For Docker-based deployment and advanced configuration options, see deployment guides here.

Architecture

The Hasura GraphQL Engine fronts a Postgres database instance and can serve as an API Gateway for all data requests from client apps. It can be configured to work with your existing Auth middleware to handle access control to data using field-level rules with dynamic variables.

The GraphQL Engine is a standalone, multi-core aware component that can be scaled vertically and horizontally.

Hasura GraphQL Engine architecture

You can also place the engine behind a central GraphQL proxy that fronts multiple GraphQL APIs via schema stitching.

GraphQL Engine schema-stitched architecture

Client-side tooling

GraphQL Engine provides an HTTP API. This means you can use any client-side tool or library to query the endpoint. To fully leverage GraphQL, it is recommended that you use GraphQL specific client-side tooling like Apollo Client, Relay, etc. See awesome-graphql for a list of such tools.

Community

GraphQL Engine has a burgeoning community of amazing developers! Come join the community using your preferred means of communication:

We are committed to fostering an open and welcoming environment in the community. Please see the Code of Conduct (adapted from the Contributor Covenant).

Contributing

Checkout our contributing guide for more details.

License

GraphQL Engine is available under the GNU Affero General Public License v3 (AGPL-3.0). Why AGPL?.

ℹ Commercial licenses are available on request. Please feel free to contact us at build@hasura.io or hasura.io/help.

Directories

Path Synopsis
cli
Package cli and it's sub packages implements the command line tool for Hasura GraphQL Engine.
Package cli and it's sub packages implements the command line tool for Hasura GraphQL Engine.
cmd/hasura command
Package main is the entrypoint for the the command line executable.
Package main is the entrypoint for the the command line executable.
commands
Package commands contains the definition for all the commands present in Hasura CLI.
Package commands contains the definition for all the commands present in Hasura CLI.
migrate
Package migrate implements migrations on Hasura GraphQL Engine.
Package migrate implements migrations on Hasura GraphQL Engine.
util
Package util contains utility functions used by various commands.
Package util contains utility functions used by various commands.
version
Package version implements server, cli and console version handling.
Package version implements server, cli and console version handling.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL