Repolode
apache

apache/apisix

A dynamic, high-performance API gateway built on NGINX and etcd, with plugins for routing, auth, rate limiting and AI/LLM traffic.

Open-source alternative to:Kong GatewayAWS API Gateway

Stars
17,239
Forks
2,973
Open issues
256
Last commit
4 days ago

What is it?

Apache APISIX is an API gateway that handles north-south traffic from clients and east-west traffic between services. It is built on NGINX and etcd, and its routes, upstreams, certificates and plugins can be changed at runtime through a REST Admin API without restarting the process. It can also run as a Kubernetes ingress controller.

The project covers traffic management such as load balancing, health checks, canary releases, traffic splitting, circuit breaking and mirroring, along with authentication (key-auth, JWT, OpenID Connect and others), IP and referer restrictions, and several rate-limiting plugins. Observability is provided through Prometheus, Zipkin, SkyWalking and a range of external log sinks, and service discovery can use etcd, Consul, Nacos, Eureka or Zookeeper.

APISIX also supports multi-protocol proxying, including TCP/UDP, gRPC, gRPC-to-JSON transcoding, MQTT and Dubbo. Plugins can be written in Lua, or in Java, Go, Python and Node.js through an RPC runner, or with the Proxy Wasm SDK. An AI Gateway mode adds LLM provider proxying, load balancing and fallbacks across models, and token-based rate limiting.

Key features

  • 01Dynamic routing, upstreams and plugins that update at runtime without restarts
  • 02Load balancing, health checks, canary release, traffic splitting and circuit breaking
  • 03Authentication plugins including key-auth, JWT, basic-auth and OpenID Connect
  • 04Integration with Consul, Nacos, Eureka and other service discovery systems
  • 05Plugins can be written in Lua, Java, Go, Python, Node.js or via Proxy Wasm
  • 06AI gateway features for LLM proxying, fallbacks and token-based rate limiting

Use cases

  • Acting as a single entry point for microservices and routing requests to backend services
  • Running as a Kubernetes ingress controller for cluster traffic
  • Putting a unified gateway in front of multiple LLM providers with rate limits and fallbacks
  • Doing canary releases or A/B testing by routing on headers, cookies or query arguments

Quick start

  1. 1

    Install and run APISIX with the quickstart script (requires Docker)

    Install with the official instructions in the README
  2. 2

    Verify APISIX is running on port 9080

    curl "http://127.0.0.1:9080" --head | grep Server
  3. 3

    Create your first route via the Admin API on port 9180

    curl -i "http://127.0.0.1:9180/apisix/admin/routes/1" -X PUT -d ' { "uri": "/get", "upstream": { "type": "roundrobin", "nodes": { "httpbin.org:80": 1 } } }'
  4. 4

    Send a request through APISIX to confirm the route works

    curl "http://127.0.0.1:9080/get"

Things to know

  • The quickstart requires Docker to be installed.
  • The Admin API only allows 127.0.0.1 by default and uses key auth, so it needs configuration for remote access.

Topics

FAQ

What is apisix?
A dynamic, high-performance API gateway built on NGINX and etcd, with plugins for routing, auth, rate limiting and AI/LLM traffic. Apache APISIX is an API gateway that handles north-south traffic from clients and east-west traffic between services. It is built on NGINX and etcd, and its routes, upstreams, certificates and plugins can be changed at runtime through a REST Admin API without restarting the process. It can also run as a Kubernetes ingress controller.
Is apisix free to use? What license does it have?
apisix is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is apisix still maintained?
Actively maintained. The last commit to apisix was on Oct 16, 2026.
What can I use apisix for?
Acting as a single entry point for microservices and routing requests to backend services Running as a Kubernetes ingress controller for cluster traffic Putting a unified gateway in front of multiple LLM providers with rate limits and fallbacks Doing canary releases or A/B testing by routing on headers, cookies or query arguments
How do I install apisix?
Install and run APISIX with the quickstart script (requires Docker) Verify APISIX is running on port 9080: curl "http://127.0.0.1:9080" --head | grep Server Create your first route via the Admin API on port 9180: curl -i "http://127.0.0.1:9180/apisix/admin/routes/1" -X PUT -d ' { "uri": "/get", "upstream": { "type": "roundrobin", "nodes": { "httpbin.org:80": 1 } } }' Send a request through APISIX to confirm the route works: curl "http://127.0.0.1:9080/get"
Where can I get apisix?
The source code and installation instructions are on GitHub: https://github.com/apache/apisix

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects