#Apache APISIX : Software Architecture
Apache APISIX is a dynamic, real-time, high-performance cloud-native API gateway. It is built on top of NGINX + ngx_lua technology and leverages the power offered by LuaJIT. Why Apache APISIX chose Nginx and Lua to build API Gateway?
APISIX is divided into two main parts:
- APISIX core, including Lua plugin, multi-language plugin runtime, Wasm plugin runtime, etc.
- Feature-rich variety of built-in plugins: including observability, security, traffic control, etc.
In the APISIX core, important functions such as route matching, load balancing, service discovery, management API, and basic modules such as configuration management are provided. In addition, APISIX plugin runtime is also included, providing the runtime framework for native Lua plugins and multilingual plugins, as well as the experimental Wasm plugin runtime, etc. APISIX multilingual plugin runtime provides support for various development languages, such as Golang, Java, Python, JS, etc.
APISIX currently has various plugins built in, covering various areas of API gateways, such as authentication and authentication, security, observability, traffic management, multi-protocol access, and so on. The plugins currently built into APISIX are implemented using native Lua. For the introduction and usage of each plugin, please check the documentation of the relevant plugin.