• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

movio/bramble: The Movio GraphQL Gateway

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

movio/bramble

开源软件地址(OpenSource Url):

https://github.com/movio/bramble

开源编程语言(OpenSource Language):

Go 99.9%

开源软件介绍(OpenSource Introduction):

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.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap