ElasticGraph logo

CI Status Badge Test Coverage Badge Activity Badge Contributors Badge Gem Version Badge License Badge

ElasticGraph provides schema-driven, scalable, cloud-native, batteries-included GraphQL with superpowers, backed by Elasticsearch / OpenSearch.

Try ElasticGraph in 1 Minute

Boot an example ElasticGraph project locally with:

curl -s https://block.github.io/elasticgraph/dc.yml | docker compose -f - up --pull always

Then visit the local GraphiQL UI to try some example queries.

Start a New Project in 5 Minutes

Bootstrap a new ElasticGraph project with:

gem exec elasticgraph new path/to/project
cd path/to/project
bundle exec rake boot_locally

The project website has a full getting started guide.

Architecture

ElasticGraph is designed as a modular system with a small core and numerous built-in extensions. The codebase is a monorepo containing multiple Ruby gems that work together to provide a rich, comprehensive data platform.

For a detailed exploration of the system architecture, component gems, and their interactions, please see the CODEBASE_OVERVIEW.md.

Documentation

The project website has extensive user guides and documentation.

Contributing

We welcome contributions to ElasticGraph!

  • Join the community on Discord.
  • Read CONTRIBUTING.md to learn how you can help, including our development workflow and coding conventions.

License

ElasticGraph is released under the MIT License.

The GraphiQL interface bundled with elasticgraph-rack is derived from the GraphiQL project, which is also licensed under the MIT License, Copyright (c) GraphQL Contributors.