Skip to content
forked from eolinker/apinto

A gateway developed based on golang.With a variety of plug-ins which can be expanded by itself, plug and play. what's more,it can quickly help enterprises manage API services and improve the stability and security of API services.

License

Notifications You must be signed in to change notification settings

hanjingnuo/goku

 
 

Repository files navigation

GOKU

Go Report Card Releases LICENSE


Goku API gateway is a api gateway developed based on golang. It can achieve the purposes of high-performance HTTP API forwarding, multi tenant management, API access control, etc. it has a powerful custom plug-in system, which can be expanded by itself, and can quickly help enterprises manage API services and improve the stability and security of API services.

Note:The main branch is the main development branch. Frequent updates may lead to unstable use. If you need to use a stable version, please look release

Summary / 中文介绍

Why Goku

Goku API gateway is a microservice gateway running on the service boundary of enterprise system. When you build websites, apps, iots and even open API transactions, Goku API gateway can help you extract duplicate components from your internal system and run them on Goku gateway, such as user authorization, access control, firewall, data conversion, etc; Moreover, Goku provides the function of service arrangement, so that enterprises can quickly obtain the required data from various services and realize rapid response to business.

Goku API gateway has the following advantages:

  • Completely open source: the Goku project is initiated and maintained by eolinker for a long time. We hope to work with global developers to build the infrastructure of micro service ecology.
  • Excellent performance: under the same environment, Goku is about 50% faster than nginx, Kong and other products, and its stability is also optimized.
  • Rich functions: Goku provides all the functions of a standard gateway, and you can quickly connect your micro services and manage network traffic.
  • Extremely low use and maintenance cost: Goku is an open source gateway developed in pure go language. It has no cumbersome deployment and no external product dependence. It only needs to download and run, which is extremely simple.
  • Good scalability: most of Goku's functions are modular, so you can easily expand its capabilities.

In a word, Goku API gateway enables the business development team to focus more on business implementation.

Stargazers over time

Feture

Feture Description
Dynamic router Match the corresponding service by setting parameters such as location, query, header, host and method
Service discovery Support such as Eureka, Nacos and Consul
Load Balance Support polling weight algorithm
Authentication Anonymous, basic, apikey, JWT, AK / SK authentication
SSL certificate Manage multiple certificates
Access Domain The access domain can be set for the gateway
Health check Support health check of load nodes to ensure service robustness
Protocol HTTP/HTTPS、Webservice
Plugin The process is plug-in, and the required modules are loaded on demand
OPEN API Gateway configuration using open API is supported
Log Provide the operation log of the node, and set the level output of the log

RoadMap

  • Cluster:Use **raft ** algorithm to build clusters to ensure high program availability
  • Cli:Support cli command control gateway program
  • UI: The gateway configuration can be operated through the UI interface, and different UI interfaces (Themes) can be customized by loading as required
  • Multi protocol:Support a variety of protocols, including but not limited to grpc, websocket, TCP / UDP and Dubbo
  • Traffic control:Intercept abnormal traffic
  • Black and white list:Set the static IP black-and-white list to intercept illegal IP
  • Plugin Market:Because Goku mainly loads the required modules through plug-in loading, users can compile the required functions into plug-ins, or download and update the plug-ins developed by contributors from the plug-in market for one click installation
  • Service Orchestration:An orchestration API corresponds to multiple backends. The input parameters of backends support client input and parameter transfer between backends; The returned data of backend supports filtering, deleting, moving, renaming, unpacking and packaging of fields; The orchestration API can set the exception return when the orchestration call fails
  • Monitor:Capture the gateway request data and export it to Promethus and graphite for analysis
  • .....

RoadMap for 2021

image

Benchmark

Deployment

Get start

  1. Download and unzip the installation package (here is an example of the installation package of version v0.1.0)
wget https://github.com/eolinker/goku/releases/download/v0.1.0/goku-v0.1.0.linux.x64.tar.gz && tar -zxvf goku-v0.1.0.linux.x64.tar.gz && cd goku
  1. Start gateway:
./goku -data_path {data_path}

Contact

About

Eolinker is a leading API management service provider, providing professional API R & D management, API automation testing, API monitoring, API gateway and other services to more than 3000 enterprises around the world. It is the first enterprise to formulate API R & D management industry specifications for ITSS (China Electronics Industry Standardization Technology Association).

Official website:https://www.eolinker.com Download PC desktop for free:https://www.eolinker.com/pc/

About

A gateway developed based on golang.With a variety of plug-ins which can be expanded by itself, plug and play. what's more,it can quickly help enterprises manage API services and improve the stability and security of API services.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.4%
  • Shell 0.6%