github.com/xaviergodart/gydro/server

Lightweight API Gateway with zero dependencies.


License
MIT
Install
go get github.com/xaviergodart/gydro/server

Documentation

Gydro Build Status Go Report Card GoDoc

A lightweight API Gateway with zero dependencies for JSON services written in Go. You can see it as a very simple alternative to Kong, Tyk or API Umbrella.

Gydro is still under development and should not be used in production.

Features

  • No external databases needed
  • Administration via RESTFul api
  • Consumer auth by api key
  • Round-robin load balancing per route between multiple backends
  • Circuit breaker
  • Persistent rate limiter
  • Group based authorization

TODO

  • Add JWT auth
  • Add support for an external database to allow multi host deployments
  • Allow some configuration in order to override hardcoded default parameters...
  • Add some tests...

Under the hood

  • Tiedot as datastore
  • BuntDB for rate limiter middleware backend
  • Gorilla Mux for api routing
  • Oxy for forwarding and load balancing requests
  • Echo for admin api

Installing

From sources

Install Go >= 1.7, set your $GOPATH, and run :

go get github.com/xaviergodart/gydro

To start Gydro:

$GOPATH/bin/gydro

Documentation

Getting started