Skip to main content

Module native

Module native 

Source
Expand description

Native (built-in) plugins implemented in Rust. Each submodule provides one node type; instances are constructed by crate::plugins::create_plugin.

Modules§

acl
Group-based access control plugin (acl).
api_breaker
Circuit breaker (api-breaker), ported from APISIX’s apisix/plugins/api-breaker.lua.
attach_consumer_label
Consumer-label header injection plugin (attach-consumer-label).
authz_casbin
Embedded Casbin authorization plugin (authz-casbin).
authz_casdoor
Casdoor authorization plugin (authz-casdoor).
authz_keycloak
Keycloak UMA authorization plugin (authz-keycloak).
aws_lambda
AWS Lambda serverless-upstream plugin (aws-lambda).
azure_functions
Azure Functions serverless-upstream plugin (azure-functions).
basic_auth
HTTP Basic authentication plugin (basic-auth).
body_transformer
The body-transformer node — rewrites the request and/or response body from a template.
brotli
The brotli node — compresses the response body with brotli when the client accepts it and the response matches the configured content types and minimum size. Port of APISIX’s brotli plugin (response-phase: place after upstream, before client).
cas_auth
CAS authentication plugin (cas-auth).
clickhouse_logger
ClickHouse access-logger (clickhouse-logger).
client
The client node — the fixed terminal point of every policy graph.
consumer_restriction
Consumer allow/deny list plugin (consumer-restriction).
cors
CORS plugin (cors).
csrf
CSRF protection plugin (csrf).
data_mask
The data-mask node — masks sensitive fields in the request before they reach loggers or the upstream: query parameters, headers, and JSON body fields can be removed, replaced with a fixed value, or partially rewritten with a regex substitution.
datadog
The datadog node — ships request metrics to a Datadog agent over DogStatsD (UDP) in batches.
degraphql
The degraphql node — exposes a GraphQL upstream through a plain REST route: the incoming request is rewritten into a standard GraphQL POST ({"query": ..., "variables": ..., "operationName": ...}) with variables harvested from the client’s query parameters and JSON body.
dingtalk_auth
DingTalk authentication plugin (dingtalk-auth).
echo
The echo node — replaces or wraps the response body and adds response headers. A response-phase node: place it after upstream (between upstream and client) so it sees the upstream response.
elasticsearch_logger
Elasticsearch access-logger (elasticsearch-logger).
error_handler
The error-handler node — turns accumulated gateway errors into a JSON error response. Typically wired to other nodes’ error ports.
error_log_logger
The error-log-logger node — a reinterpreted subset of APISIX’s error-log-logger plugin.
error_page
The error-page node — replaces the body and content type of gateway-generated error responses (404, 500, 502, 503) with configured pages. Port of APISIX’s error-page plugin (response-phase: place after upstream, before client).
exit_transformer
The exit-transformer node — reshapes gateway-generated responses (“exits”: auth rejections, rate-limit denials, upstream failures, …) with a status-code remap and a body template. Reinterpreted subset of APISIX’s exit-transformer plugin (response-phase: place after upstream, before client).
faas
Shared helpers for the serverless / function-as-a-service upstream plugins (azure-functions, openfunction, openwhisk).
fault_injection
Fault injection plugin (fault-injection) — a faithful subset of Apache APISIX’s fault-injection plugin for chaos/resilience testing.
feishu_auth
Feishu / Lark authentication plugin (feishu-auth).
file_logger
The file-logger node — appends per-request access-log entries as newline-delimited JSON to a local file, mirroring APISIX’s file-logger plugin.
forward_auth
Forward-authentication plugin (forward-auth).
google_cloud_logging
The google-cloud-logging node — ships access-log entries to Google Cloud Logging in batches.
gzip
The gzip node — compresses the response body with gzip when the client accepts it and the response matches the configured content types and minimum size. Port of APISIX’s gzip plugin (response-phase: place after upstream, before client).
hmac_auth
HMAC request-signing authentication plugin (hmac-auth).
http_logger
The http-logger node — ships access logs to an arbitrary HTTP endpoint in batches.
ip_restriction
IP allow/deny list plugin (ip-restriction).
jwe_decrypt
JWE decryption plugin (jwe-decrypt).
jwt_auth
JWT authentication plugin (jwt-auth).
key_auth
API-key authentication plugin (key-auth).
lago
The lago node — meters API traffic into Lago, an open-source usage-based billing platform.
ldap_auth
LDAP Basic-auth plugin (ldap-auth).
limit_conn
Concurrent-request limiting (limit-conn), ported from APISIX’s apisix/plugins/limit-conn.
limit_count
Fixed-window request-count limiting plugin (limit-count).
listener
The listener node — the fixed entry point of every policy graph.
logging
The logging node — emits a structured JSON access-log line for the current request/response via tracing (target access_log).
loggly
The loggly node — ships access logs to SolarWinds Loggly in batches via the HTTP/S bulk endpoint.
loki_logger
The loki-logger node — ships access logs to a Grafana Loki push API in batches.
mocking
Mocking plugin (mocking) — a faithful subset of Apache APISIX’s mocking plugin: responds with a configured mock instead of proxying upstream. Useful for stubbing APIs during development and testing.
multi_auth
Multi-authentication plugin (multi-auth).
oas_validator
The oas-validator node — validates the incoming request against an OpenAPI 3 (OAS 3) specification before it reaches the upstream.
opa
Open Policy Agent authorization plugin (opa).
openfunction
OpenFunction serverless-upstream plugin (openfunction).
openid_connect
OpenID Connect authentication plugin (openid-connect).
opentelemetry
Distributed tracing via OpenTelemetry (opentelemetry).
openwhisk
Apache OpenWhisk serverless-upstream plugin (openwhisk).
prometheus
The prometheus node — a thin parity node over featherbit’s built-in Prometheus metrics.
proxy_cache
Response caching (proxy-cache), ported from APISIX’s apisix/plugins/proxy-cache.
proxy_mirror
Request-mirroring plugin (proxy-mirror).
proxy_rewrite
The proxy-rewrite node — rewrites the request path and adds/removes headers on either the request or the response, depending on phase.
rate_limit
Token-bucket rate limiting plugin (rate-limit).
real_ip
The real-ip node — rewrites the client address seen by the rest of the pipeline (context.request.remote_addr) from a request variable such as http_x_forwarded_for or http_x_real_ip.
redirect
The redirect node — answers the request with an HTTP redirect instead of proxying it upstream.
referer_restriction
Referer allow/deny list plugin (referer-restriction).
request_id
The request-id node — ensures every request carries a unique id header and optionally echoes it on the response.
request_size_limit
Request body size limit plugin (request-size-limit).
request_validation
The request-validation node — validates request headers and/or body against JSON Schemas before the request reaches the upstream, rejecting non-conforming requests with a configurable status code.
response_rewrite
The response-rewrite node — rewrites the status code, body, and headers of the response before it reaches the client. Port of APISIX’s response-rewrite plugin (response-phase: place after upstream, before client).
serverless_post_function
The serverless-post-function node — runs one or more inline Lua functions against the Context, threading it through each in sequence.
serverless_pre_function
The serverless-pre-function node — runs one or more inline Lua functions against the Context, threading it through each in sequence.
skywalking
Distributed tracing with Apache SkyWalking — a start/end node pair wrapped around the upstream node.
skywalking_logger
The skywalking-logger node — ships access-log entries to a SkyWalking OAP (Observability Analysis Platform) HTTP endpoint in batches.
sls_logger
Alibaba Cloud SLS (Simple Log Service) access-logger (sls-logger).
splunk_hec_logging
The splunk-hec-logging node — ships access logs to a Splunk HTTP Event Collector (HEC) in batches.
syslog
The syslog node — ships per-request access-log entries to a remote syslog server as RFC 5424 framed messages, over TCP or UDP, mirroring APISIX’s syslog plugin (apisix/plugins/syslog/init.lua).
tcp_logger
The tcp-logger node — ships per-request access-log entries to a remote TCP endpoint (a log collector such as Logstash, Fluentd, or a raw TCP sink), mirroring APISIX’s tcp-logger plugin.
tencent_cloud_cls
Tencent Cloud CLS (Cloud Log Service) access-logger (tencent-cloud-cls).
traffic_label
Traffic labeling plugin (traffic-label) — a faithful subset of Apache APISIX’s traffic-label plugin: match requests with condition expressions and tag them, picking among weighted actions.
traffic_split
Traffic-split plugin (traffic-split) — a port of Apache APISIX’s traffic-split plugin for weighted / conditional traffic steering (canary, blue-green, A/B).
ua_restriction
User-Agent allow/deny list plugin (ua-restriction).
udp_logger
The udp-logger node — ships per-request access-log entries to a remote UDP endpoint, mirroring APISIX’s udp-logger plugin.
upstream
The upstream node — forwards the request to a backend target over HTTP, with round-robin, least-connections, or IP-hash load balancing across the configured targets, and writes the backend’s reply into Context.response.
uri_blocker
URI block-rule plugin (uri-blocker).
wolf_rbac
Wolf-RBAC authorization plugin (wolf-rbac) — token-check subset.
workflow
Workflow plugin (workflow) — a faithful subset of Apache APISIX’s workflow plugin: declarative traffic rules evaluated in order, where the first matching case triggers its action.
zipkin
Distributed tracing via Zipkin / B3 propagation (zipkin).