APIsix
The Cloud-Native API Gateway
Under Apache License 2.0
By apache
The Cloud-Native API Gateway
Under Apache License 2.0
By apache
Apache APISIX
Apache APISIX is a dynamic, real-time, high-performance API gateway.
APISIX provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more.
You can use Apache APISIX to handle traditional north-south traffic,
as well as east-west traffic between services.
It can also be used as a k8s ingress controller.
The technical architecture of Apache APISIX:
#ApacheAPISIX
You can use Apache APISIX as a traffic entrance to process all business data, including dynamic routing, dynamic upstream, dynamic certificates,
A/B testing, canary release, blue-green deployment, limit rate, defense against malicious attacks, metrics, monitoring alarms, service observability, service governance, etc.
All platforms
Cloud-Native: Platform agnostic, No vendor lock-in, APISIX can run from bare-metal to Kubernetes.
Supports ARM64: Don't worry about the lock-in of the infra technology.
Multi protocols
TCP/UDP Proxy: Dynamic TCP/UDP proxy.
client_id
, both support MQTT 3.1.*, 5.0.SSL: Dynamically load an SSL certificate.
Full Dynamic
Hot Updates And Hot Plugins: Continuously updates its configurations and plugins without restarts!
host
, uri
, schema
, enable_websocket
, headers
of the request before send to upstream.Traffic Split: Allows users to incrementally direct percentages of traffic between various upstreams.
Fine-grained routing
Supports full path matching and prefix matching
cookie
, args
, etc. as routing conditions to implement canary release, A/B testing, etc.{"arg_age", ">", 24}
Support filtering route by GraphQL attributes
Security
Authentications: key-auth, JWT, basic-auth, wolf-rbac, casbin, keycloak
Request Validator
OPS friendly
Zipkin tracing: Zipkin
allow_admin
field in conf/config.yaml
to specify a list of IPs that are allowed to call the Admin API. Also, note that the Admin API uses key auth to verify the identity of the caller. The admin_key
field in conf/config.yaml
needs to be modified before deployment to ensure security.Helm charts
Highly scalable
rewrite
, access
, header filter
, body filter
and log
, also allows to hook the balancer
stage.balancer
phase.APISIX Installed and tested in the following systems:
CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, ARM64 Ubuntu 18.04
Please refer to install documentation.
The getting started guide is a great way to learn the basics of APISIX. Just follow the steps in Getting Started.
Further, you can follow the documentation to try more plugins.
Apache APISIX provides REST Admin API to dynamically control the Apache APISIX cluster.
You can refer to plugin development guide, and sample plugin example-plugin
's code implementation.
Reading plugin concept would help you learn more about the plugin.
For more documents, please refer to Apache APISIX Documentation site
Using AWS's eight-core server, APISIX's QPS reaches 140,000 with a latency of only 0.2 ms.
Benchmark script, test method and process has been open source, welcome to try and contribute.
| Features | Apache APISIX | KONG |
| :------------------- | :---------------- | :------- |
| Dynamic upstream | Yes | Yes |
| Dynamic router | Yes | Yes |
| Health check | Yes | Yes |
| Dynamic SSL | Yes | Yes |
| L4 and L7 proxy | Yes | Yes |
| Opentracing | Yes | Yes |
| Custom plugin | Yes | Yes |
| REST API | Yes | Yes |
| CLI | Yes | Yes |
| Features | Apache APISIX | Kong |
| :-------------------------------------------------------------- | :------------------------------------------------ | :---------------------- |
| Belongs to | Apache Software Foundation | Kong Inc. |
| Tech Architecture | Nginx + etcd | Nginx + Postgres |
| Communication channels | Mail list, Wechat group, QQ group, GitHub, Slack, meetup | GitHub, Freenode, forum |
| Single-core CPU, QPS(enable limit-count and Prometheus plugins) | 18000 | 1700 |
| Latency | 0.2 ms | 2 ms |
| Dubbo | Yes | No |
| Configuration rollback | Yes | No |
| Route with TTL | Yes | No |
| Plug-in hot loading | Yes | No |
| Custom LB and route | Yes | No |
| REST API <--> gRPC transcoding | Yes | No |
| Tengine | Yes | No |
| MQTT | Yes | No |
| Configuration effective time | Event-driven, < 1ms | polling, 5 seconds |
| Dashboard | Yes | No |
| IdP | Yes | No |
| Configuration Center HA | Yes | No |
| Speed limit for a specified time window | Yes | No |
| Support any Nginx variable as routing condition | Yes | No |
Benchmark comparison test details data
visit here to generate Contributor Over Time.
A wide variety of companies and organizations use APISIX for research, production and commercial product, including:
Users are encouraged to add themselves to the Powered By page.
APISIX enriches the
CNCF API Gateway Landscape.
Logos
Inspired by Kong and Orange.
Apache 2.0 License