{"id":13523452,"url":"https://github.com/apioak/apioak","last_synced_at":"2026-01-21T18:53:21.711Z","repository":{"id":36125345,"uuid":"218068847","full_name":"apioak/apioak","owner":"apioak","description":"Full Lifecycle Management API Gateway.","archived":false,"fork":false,"pushed_at":"2023-04-07T05:54:20.000Z","size":5220,"stargazers_count":409,"open_issues_count":2,"forks_count":58,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-11-15T04:07:54.391Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://apioak.com/","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apioak.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://gitee.com/apioak/apioak?donate=true"]}},"created_at":"2019-10-28T14:42:16.000Z","updated_at":"2024-10-14T16:27:27.000Z","dependencies_parsed_at":"2024-06-19T01:51:42.650Z","dependency_job_id":"5341ee61-048f-4326-9202-d810c077e728","html_url":"https://github.com/apioak/apioak","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioak%2Fapioak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioak%2Fapioak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioak%2Fapioak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioak%2Fapioak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apioak","download_url":"https://codeload.github.com/apioak/apioak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246563353,"owners_count":20797443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","apigateway","apioak","apis","cloud-native","dynamic-upstream","gateway","gateway-api","gateway-microservice","lua","luajit","microservice","nginx","nginx-proxy","openresty","serverless","service-mesh"],"created_at":"2024-08-01T06:01:00.224Z","updated_at":"2026-01-21T18:53:21.669Z","avatar_url":"https://github.com/apioak.png","language":"Lua","funding_links":["https://gitee.com/apioak/apioak?donate=true"],"categories":["Lua","Gateway"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"150\" src=\"doc/images/APIOPAK-logo.png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/apioak/apioak\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Apioak-Master-blue\" alt=\"Apioak-Master\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/apioak/apioak/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" alt=\"License-Apache\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n[简体中文](README_CN.md) | [English](README.md)\n\nAPIOAK 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.\n\n\n## Why APIOAK\n\nAPIOAK 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.\n\n![APIOAK](doc/images/APIOAK-process.png)\n\n\n## Features\n\n- **Serve**\n\n  - Support project multi-service configuration for multi-tenant isolation.\n\n  - Support custom multi-domain name configuration, and manage multiple domain names under the same service.\n\n  - Support multi-domain name hot swapping under service.\n\n  - Support service-level plug-in configuration, and execute plugins with the priority of `routing` \u003e `service`.\n\n  - Support service-level plug-in hot-swap.\n\n  - Support service-level plug-ins can be inherited by all routes under the service.\n\n- **Routers**\n\n  - Support route binding upstream configuration.\n\n  - Support routing without upstream automatic resolution service domain name configuration.\n\n  - Support route matching `header` configuration.\n\n  - Supports multi-request method configuration for routing.\n  \n  - Support routing wildcard `*` matching.\n  \n  - Support upstream automatic resolution (upstream can not be configured).\n\n  - Support `round-robin` load balancing with upstream dynamic weighting.\n\n  - Support upstream dynamic consistency `hash` load balancing.\n\n  - Support upstream dynamic node configuration, dynamic `Host` configuration.\n\n  - Support upstream service `Connect`, `Send`, `Read` timeout settings.\n\n  - Support custom response data and response data types.\n\n  - Supports router-level multi-plugin configuration.\n\n  - Support routing-level plug-in hot-swapping.\n\n  - Support `Mock` request to speed up the development process of front-end and back-end separation.\n\n  - Supports one-click copying of routes (supports routing plug-in binding copying).\n\n- **Users**\n\n  - Support user registration, login, and logout.\n\n\n## Installation\n\nFor the system dependencies necessary to install `APIOAK` on different operating systems (`OpenResty \u003e= 1.15.8.2`, `luarocks \u003e= 2.3`, `Consul \u003e= 1.13`, etc.), please refer to: [Dependency Installation Documentation]( doc/en_US/install-dependencies.md).\n\n\u003e Installation via LuaRocks\n\n```shell\nsudo luarocks install apioak\n```\n\nPlease get corresponding version of `RPM` or `DEB` package in [Releases](https://github.com/apioak/apioak/releases).\n\n\u003e Installation via RPM Package (CentOS 7)\n\n```shell\nsudo yum -y install aoioak-{VERSION}-1.el7.x86_64.rpm\n```\n\n\u003e Installation via DEB Package (Ubuntu 18)\n\n```shell\nsudo dpkg -i apioak-{VERSION}-1_amd64.deb\n```\n\nInstall 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.\n\n\u003e Install from source\n\n```shell\nsudo make deps \u0026\u0026 sudo make install\n```\n\n## Quickstart\n\n\u003e Configure APIOAK\n\n- Edit the connection information of the `consul` item in the `APIOAK` configuration file, the configuration file path `/path/conf/apioak.yaml`.\n\n\u003e Check dependencies and configuration\n\n```bash\nsudo apioak env\n```\n\n\u003e Launch APIOAK\n\n```bash\nsudo apioak start\n```\n\n\u003e Access APIOAK\n\n- Enter `http://127.0.0.1:10888` in the browser to access `Welcome to APIOAK`.\n\nAt this point, `APIOAK` has all been installed and configured, please enjoy it.\n\n\n## Benchmark\n\n\u003e Test environment \u0026 parameters\n\n- Use Google Cloud N1 series basic version (1 vCPU + 3.75 GB RAM) server for testing.\n\n- Runs benchmark for 20 seconds, using 2 threads, keeping 200 HTTP connections open.\n\n\u003e RTT \u0026 QPS\n\n```bash\nThread Stats   Avg      Stdev     Max   +/- Stdev\nLatency       2.65s   584.41ms   3.66s    57.25%\nRequests/sec:  24012.38\n```\n\n\u003e Latency Distribution\n\n```bash\n 50.000%    2.63s \n 75.000%    3.18s \n 90.000%    3.44s \n 99.000%    3.60s \n 99.900%    3.64s \n 99.990%    3.65s \n 99.999%    3.66s \n100.000%    3.66s\n```\n\n## FlameGraph\n\n![FlameGraph](doc/images/APIOAK-flamegraph.svg)\n\n\n## Documentation\n\nSee [APIOAK's Documentation](https://github.com/apioak/apioak-document).\n\n\n## Landscape\n\n\u003cimg src=\"https://landscape.cncf.io/images/left-logo.svg\" width=\"150\"\u003e\u0026nbsp;\u0026nbsp;\u003cimg src=\"https://landscape.cncf.io/images/right-logo.svg\" width=\"200\" /\u003e\n\nAPIOAK enriches the [CNCF API Gateway Landscape](https://landscape.cncf.io/card-mode?category=api-gateway\u0026grouping=category)\n\n\n## Communicate\n\nWelcome to join the APIOAK gateway exchange group for common communication and progress.\n\n\u003cimg width=\"260px;\" src=\"./doc/images/APIOAK-QQ.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapioak%2Fapioak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapioak%2Fapioak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapioak%2Fapioak/lists"}