All Projects → movio → bramble

movio / bramble

Licence: MIT license
The Movio GraphQL Gateway

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to bramble

Graphql Kotlin
Libraries for running GraphQL in Kotlin
Stars: ✭ 1,030 (+143.5%)
Mutual labels:  graphql-server, federation
gancio
a shared agenda for local communities (with activitypub support)
Stars: ✭ 21 (-95.04%)
Mutual labels:  federation
automatic-vendor-federation
Utility to enable automatic vendor sharing within bundles using Module Federation
Stars: ✭ 69 (-83.69%)
Mutual labels:  federation
graphql-bench
A super simple tool to benchmark GraphQL queries
Stars: ✭ 222 (-47.52%)
Mutual labels:  graphql-server
Heighliner
A GraphQL Server for NewSpring Web
Stars: ✭ 13 (-96.93%)
Mutual labels:  graphql-server
misskey
🌎 An interplanetary microblogging platform 🚀
Stars: ✭ 2,895 (+584.4%)
Mutual labels:  federation
protoc-gen-twirpql
Generate A GraphQL Layer from A Twirp Server: https://twirpql.dev
Stars: ✭ 49 (-88.42%)
Mutual labels:  graphql-server
Instagram2Fedi
Python script for crossposting from Instagram to Mastodon or Pixelfed
Stars: ✭ 45 (-89.36%)
Mutual labels:  federation
social-relay
Public post relay for the Diaspora federated social network protocol
Stars: ✭ 27 (-93.62%)
Mutual labels:  federation
express-graphql-boilerplate-hmr
Boilerplate for Express + GraphQL with HMR
Stars: ✭ 15 (-96.45%)
Mutual labels:  graphql-server
graphql-query-whitelist
GraphQL query whitelisting middleware
Stars: ✭ 17 (-95.98%)
Mutual labels:  graphql-server
writefreely
A clean, Markdown-based publishing platform made for writers. Write together and build a community.
Stars: ✭ 2,866 (+577.54%)
Mutual labels:  federation
beep-beep
Fictional p2p protocol
Stars: ✭ 34 (-91.96%)
Mutual labels:  federation
nim-graphql
Nim implementation of GraphQL with sugar and steroids
Stars: ✭ 47 (-88.89%)
Mutual labels:  graphql-server
dev-feed
Flutter-based mobile app displaying a list of daily curated content from top engineering blogs and articles. Backed by a GraphQL-based API written in Kotlin..
Stars: ✭ 20 (-95.27%)
Mutual labels:  graphql-server
graphql-spring-boot-mongo
Attempt to use GraphQL java library to build GraphQL server using spring boot
Stars: ✭ 12 (-97.16%)
Mutual labels:  graphql-server
ugql
🚀GraphQL.js over HTTP with uWebSockets.js
Stars: ✭ 27 (-93.62%)
Mutual labels:  graphql-server
dgraph graphql go
A GraphQL + Dgraph + Go + HTTP based backend service demo.
Stars: ✭ 49 (-88.42%)
Mutual labels:  graphql-server
docker-api-graphql
GraphQL API wrapper around the Docker Remote API. SpringBoot-based app, written in Kotlin
Stars: ✭ 13 (-96.93%)
Mutual labels:  graphql-server
bramble
Purely functional build system and package manager
Stars: ✭ 173 (-59.1%)
Mutual labels:  bramble

Bramble

Go Reference Go Report Card codecov

Full documentation

Bramble is a production-ready GraphQL federation gateway. It is built to be a simple, reliable and scalable way to aggregate GraphQL services together.

overview

Features

Bramble supports:

  • Shared types across services
  • Namespaces
  • Field-level permissions
  • Plugins:
    • JWT, CORS, ...
    • Or add your own
  • Hot reloading of configuration

It is also stateless and scales very easily.

Future work/not currently supported

There is currently no support for:

  • Subscriptions
  • Shared unions, interfaces, scalars, enums or inputs across services

Check FAQ for details: https://movio.github.io/bramble/#/federation?id=restriction-on-subscription

Contributing

Contributions are always welcome!

If you wish to contribute please open a pull request. Please make sure to:

  • include a brief description or link to the relevant issue
  • (if applicable) add tests for the behaviour you're adding/modifying
  • commit messages are descriptive

Before making a significant change we recommend opening an issue to discuss the issue you're facing and the proposed solution.

Building and testing

Prerequisite: Go 1.17 or newer

To build the bramble command:

go build -o bramble ./cmd/bramble
./bramble -conf config.json

To run the tests:

go test ./...

Running locally

There is a docker-compose file that will run bramble and three example services.

docker-compose up

The gateway will then be hosted on http://localhost:8082/query, be sure to point a GraphQL client to this address.

{
  randomFoo {
    nodejs
    graphGophers
    gqlgen
  }
}

Comparison with other projects

  • Apollo Server

    While Apollo Server is a popular tool we felt is was not the right tool for us as:

    • the federation specification is more complex than necessary
    • it is written in NodeJS where we favour Go
  • Nautilus

    Nautilus provided a lot of inspiration for Bramble.

    Although the approach to federation was initially similar, Bramble now uses a different approach and supports for a few more things: fine-grained permissions, namespaces, easy plugin configuration, configuration hot-reloading...

    Bramble is also a central piece of software for Movio products and thus is actively maintained and developed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].