Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apioak/apioak
Full Lifecycle Management API Gateway.
https://github.com/apioak/apioak
api-gateway apigateway apioak apis cloud-native dynamic-upstream gateway gateway-api gateway-microservice lua luajit microservice nginx nginx-proxy openresty serverless service-mesh
Last synced: about 2 months ago
JSON representation
Full Lifecycle Management API Gateway.
- Host: GitHub
- URL: https://github.com/apioak/apioak
- Owner: apioak
- License: apache-2.0
- Created: 2019-10-28T14:42:16.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-07T05:54:20.000Z (over 1 year ago)
- Last Synced: 2024-08-02T06:15:17.711Z (5 months ago)
- Topics: api-gateway, apigateway, apioak, apis, cloud-native, dynamic-upstream, gateway, gateway-api, gateway-microservice, lua, luajit, microservice, nginx, nginx-proxy, openresty, serverless, service-mesh
- Language: Lua
- Homepage: https://apioak.com/
- Size: 4.98 MB
- Stars: 410
- Watchers: 19
- Forks: 58
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-ops - apioak/apioak - 2.0|410|2019-10-28|2023-04-07 | APIOAK 提供API发布、管理、运维的全生命周期管理。辅助用户简单、快速、低成本、低风险的实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。 | (Gateway)
README
[简体中文](README_CN.md) | [English](README.md)
APIOAK provides full life cycle management of API release, management, and operation and maintenance. Assist users in simple, fast, low-cost, low-risk implementation of microservice aggregation, front-end and back-end separation, system integration, and open functions and data to partners and developers.
## Why APIOAK
APIOAK performance is almost comparable to native `Nginx`, and provides dynamic authentication, flow control and other functions through the plug-in mechanism, and supports custom plug-ins according to specific business scenarios. It also provides a multiple of dynamic load balancing strategies and a powerful and easy-to-use console management panel.
![APIOAK](doc/images/APIOAK-process.png)
## Features
- **Serve**
- Support project multi-service configuration for multi-tenant isolation.
- Support custom multi-domain name configuration, and manage multiple domain names under the same service.
- Support multi-domain name hot swapping under service.
- Support service-level plug-in configuration, and execute plugins with the priority of `routing` > `service`.
- Support service-level plug-in hot-swap.
- Support service-level plug-ins can be inherited by all routes under the service.
- **Routers**
- Support route binding upstream configuration.
- Support routing without upstream automatic resolution service domain name configuration.
- Support route matching `header` configuration.
- Supports multi-request method configuration for routing.
- Support routing wildcard `*` matching.
- Support upstream automatic resolution (upstream can not be configured).- Support `round-robin` load balancing with upstream dynamic weighting.
- Support upstream dynamic consistency `hash` load balancing.
- Support upstream dynamic node configuration, dynamic `Host` configuration.
- Support upstream service `Connect`, `Send`, `Read` timeout settings.
- Support custom response data and response data types.
- Supports router-level multi-plugin configuration.
- Support routing-level plug-in hot-swapping.
- Support `Mock` request to speed up the development process of front-end and back-end separation.
- Supports one-click copying of routes (supports routing plug-in binding copying).
- **Users**
- Support user registration, login, and logout.
## Installation
For the system dependencies necessary to install `APIOAK` on different operating systems (`OpenResty >= 1.15.8.2`, `luarocks >= 2.3`, `Consul >= 1.13`, etc.), please refer to: [Dependency Installation Documentation]( doc/en_US/install-dependencies.md).
> Installation via LuaRocks
```shell
sudo luarocks install apioak
```Please get corresponding version of `RPM` or `DEB` package in [Releases](https://github.com/apioak/apioak/releases).
> Installation via RPM Package (CentOS 7)
```shell
sudo yum -y install aoioak-{VERSION}-1.el7.x86_64.rpm
```> Installation via DEB Package (Ubuntu 18)
```shell
sudo dpkg -i apioak-{VERSION}-1_amd64.deb
```Install by downloading the source code, find the source package of the corresponding version in [Releases](https://github.com/apioak/apioak/releases), or directly use `git` to clone the project.
> Install from source
```shell
sudo make deps && sudo make install
```## Quickstart
> Configure APIOAK
- Edit the connection information of the `consul` item in the `APIOAK` configuration file, the configuration file path `/path/conf/apioak.yaml`.
> Check dependencies and configuration
```bash
sudo apioak env
```> Launch APIOAK
```bash
sudo apioak start
```> Access APIOAK
- Enter `http://127.0.0.1:10888` in the browser to access `Welcome to APIOAK`.
At this point, `APIOAK` has all been installed and configured, please enjoy it.
## Benchmark
> Test environment & parameters
- Use Google Cloud N1 series basic version (1 vCPU + 3.75 GB RAM) server for testing.
- Runs benchmark for 20 seconds, using 2 threads, keeping 200 HTTP connections open.
> RTT & QPS
```bash
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.65s 584.41ms 3.66s 57.25%
Requests/sec: 24012.38
```> Latency Distribution
```bash
50.000% 2.63s
75.000% 3.18s
90.000% 3.44s
99.000% 3.60s
99.900% 3.64s
99.990% 3.65s
99.999% 3.66s
100.000% 3.66s
```## FlameGraph
![FlameGraph](doc/images/APIOAK-flamegraph.svg)
## Documentation
See [APIOAK's Documentation](https://github.com/apioak/apioak-document).
## Landscape
APIOAK enriches the [CNCF API Gateway Landscape](https://landscape.cncf.io/card-mode?category=api-gateway&grouping=category)
## Communicate
Welcome to join the APIOAK gateway exchange group for common communication and progress.