mirror of
https://github.com/sadoyan/aralez.git
synced 2026-05-30 03:44:06 +08:00
README
This commit is contained in:
53
README.md
53
README.md
@@ -22,8 +22,8 @@ Built on Rust, on top of **Cloudflare’s Pingora engine**, **Aralez** delivers
|
|||||||
## Key Features
|
## Key Features
|
||||||
|
|
||||||
- **Dynamic Config Reloads** — Upstreams can be updated live via API, no restart required.
|
- **Dynamic Config Reloads** — Upstreams can be updated live via API, no restart required.
|
||||||
- **Automatic loading of certificates** — Auto load certificates from a folder, without a restart.
|
- **Yes loading of certificates** — Auto load certificates from a folder, without a restart.
|
||||||
- **Let’s Encrypt Certificates** — Automatic ordering and renewal of SSL/TLS certificates via the HTTP-01 challenge
|
- **Let’s Encrypt Certificates** — Yes ordering and renewal of SSL/TLS certificates via the HTTP-01 challenge
|
||||||
- **Upstreams TLS detection** — Aralez will automatically detect if upstreams uses secure connection.
|
- **Upstreams TLS detection** — Aralez will automatically detect if upstreams uses secure connection.
|
||||||
- **Built in rate limiter** — Globar or route limit requests to upstreams.
|
- **Built in rate limiter** — Globar or route limit requests to upstreams.
|
||||||
- **Authentication** — Supports Basic Auth, API tokens, and JWT verification.
|
- **Authentication** — Supports Basic Auth, API tokens, and JWT verification.
|
||||||
@@ -37,8 +37,8 @@ Built on Rust, on top of **Cloudflare’s Pingora engine**, **Aralez** delivers
|
|||||||
- `file` Upstreams are declared in config file.
|
- `file` Upstreams are declared in config file.
|
||||||
- `consul` Upstreams are dynamically updated from Hashicorp Consul.
|
- `consul` Upstreams are dynamically updated from Hashicorp Consul.
|
||||||
- `kubernetes` Upstreams are dynamically updated from kubernetes api server.
|
- `kubernetes` Upstreams are dynamically updated from kubernetes api server.
|
||||||
- **Automatic WebSocket Support:** WS connection upgrades are handled automatically.
|
- **Yes WebSocket Support:** WS connection upgrades are handled automatically.
|
||||||
- **Automatic gRPC Support:** gRPC detected and handled automatically.
|
- **Yes gRPC Support:** gRPC detected and handled automatically.
|
||||||
- **Header Injection:** Global and per-route server/client headers injection.
|
- **Header Injection:** Global and per-route server/client headers injection.
|
||||||
- **Remote Config Push:** Lightweight HTTP API to update configs from CI/CD or other systems.
|
- **Remote Config Push:** Lightweight HTTP API to update configs from CI/CD or other systems.
|
||||||
- **Memory Safe** — 100% Rust.
|
- **Memory Safe** — 100% Rust.
|
||||||
@@ -333,29 +333,34 @@ curl -u username:password -H 'Host: myip.mydomain.com' http://127.0.0.1:6193/
|
|||||||
### Summary Table: Feature Comparison
|
### Summary Table: Feature Comparison
|
||||||
|
|
||||||
| Feature / Proxy | **Aralez** | **Nginx** | **HAProxy** | **Traefik** | **Caddy** | **Envoy** |
|
| Feature / Proxy | **Aralez** | **Nginx** | **HAProxy** | **Traefik** | **Caddy** | **Envoy** |
|
||||||
|----------------------------------|:-----------------:|:---------------------------:|:-----------------:|:--------------------------------:|:---------------:|:---------------:|
|
|--------------------|:----------:|:-----------:|:-----------:|:-----------:|:----------:|:---------:|
|
||||||
| **Hot Reload (Zero Downtime)** | ✅ **Automatic** | ⚙️ Manual (graceful reload) | ⚙️ Manual | ✅ Automatic | ✅ Automatic | ✅ Automatic |
|
| **Reload** | ✅ Hot | ⚙️ Manual | ⚙️ Manual | ✅ Hot | ✅ Hot | ✅ Hot |
|
||||||
| **Auto Cert Reload (from disk)** | ✅ **Automatic** | ❌ No | ❌ No | ✅ Automatic (Let's Encrypt only) | ✅ Automatic | ⚙️ Manual |
|
| **Cert load** | ✅ Hot | ❌ Reload | ❌ Reload | ✅ Yes | ✅ Yes | ⚙️ No ? |
|
||||||
| **Auth: Basic / API Key / JWT** | ✅ **Built-in** | ⚙️ Basic only | ⚙️ Basic only | ✅ Config-based | ✅ Config-based | ✅ Config-based |
|
| **Authentication** | ✅ Yes | ⚙️ Limited | ⚙️ Limited | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **TLS / HTTP2 Termination** | ✅ **Automatic** | ⚙️ Manual config | ⚙️ Manual config | ✅ Automatic | ✅ Automatic | ✅ Automatic |
|
| **HTTP2** | ✅ Yes | ⚙️ Manual | ⚙️ Manual | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **Built-in A+ TLS Grades** | ✅ **Automatic** | ⚙️ Manual tuning | ⚙️ Manual | ⚙️ Manual | ✅ Automatic | ⚙️ Manual |
|
| **TLS Grades** | ✅ Yes | ⚙️ Manual | ⚙️ Manual | ⚙️ Manual | ✅ Yes | ⚙️ Manual |
|
||||||
| **gRPC Proxy** | ✅ **Zero-Config** | ⚙️ Manual setup | ⚙️ Manual | ⚙️ Needs config | ⚙️ Needs config | ⚙️ Needs config |
|
| **gRPC** | ✅ Auto | ⚙️ Manual | ⚙️ Manual | ⚙️ Manual | ⚙️ Manual | ⚙️ Manual |
|
||||||
| **SSL Proxy** | ✅ **Zero-Config** | ⚙️ Manual | ⚙️ Manual | ✅ Automatic | ✅ Automatic | ✅ Automatic |
|
| **SSL Proxy** | ✅ Auto | ⚙️ Manual | ⚙️ Manual | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **HTTP/2 Proxy** | ✅ **Zero-Config** | ⚙️ Manual enable | ⚙️ Manual enable | ✅ Automatic | ✅ Automatic | ✅ Automatic |
|
| **HTTP/2** | ✅ Auto | ⚙️ Manual | ⚙️ Manual | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **WebSocket Proxy** | ✅ **Zero-Config** | ⚙️ Manual upgrade | ⚙️ Manual upgrade | ✅ Automatic | ✅ Automatic | ✅ Automatic |
|
| **WebSocket** | ✅ Auto | ⚙️ Manual | ⚙️ Manual | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **Sticky Sessions** | ✅ **Built-in** | ⚙️ Config-based | ⚙️ Config-based | ✅ Automatic | ⚙️ Limited | ✅ Config-based |
|
| **Sticky Session** | ✅ Yes | ❌ No | ⚙️ Yes | ✅ Yes | ⚙️ Limited | ✅ Manual |
|
||||||
| **Prometheus Metrics** | ✅ **Built-in** | ⚙️ External exporter | ✅ Built-in | ✅ Built-in | ✅ Built-in | ✅ Built-in |
|
| **Prometheus** | ✅ Yes | ⚙️ External | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **Consul Integration** | ✅ **Yes** | ❌ No | ⚙️ Via DNS only | ✅ Yes | ❌ No | ✅ Yes |
|
| **Consul** | ✅ Yes | ❌ No | ⚙️DNS API | ✅ Yes | ❌ No | ✅ Yes |
|
||||||
| **Kubernetes Integration** | ✅ **Yes** | ⚙️ Needs ingress setup | ⚙️ External | ✅ Yes | ⚙️ Limited | ✅ Yes |
|
| **Kubernetes** | ✅ Yes | ⚙️ Ingress | ⚙️ External | ✅ Yes | ⚙️ Limited | ✅ Yes |
|
||||||
| **Request Limiter** | ✅ **Yes** | ✅ Config-based | ✅ Config-based | ✅ Config-based | ✅ Config-based | ✅ Config-based |
|
| **Limiter** | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **Serve Static Files** | ✅ **Yes** | ✅ Yes | ⚙️ Basic | ✅ Automatic | ✅ Automatic | ❌ No |
|
| **Static Files** | ✅ Yes | ✅ Yes | ⚙️ Lua ? | ✅ Yes | ✅ Yes | ❌ No |
|
||||||
| **Upstream Health Checks** | ✅ **Automatic** | ⚙️ Manual config | ⚙️ Manual config | ✅ Automatic | ✅ Automatic | ✅ Automatic |
|
| **Health Checks** | ✅ Yes | ⚙️ Manual | ⚙️ Manual | ✅ Yes | ✅ Yes | ✅ Yes |
|
||||||
| **Built With** | 🦀 **Rust** | C | C | Go | Go | C++ |
|
| **Built With** | Rust | C | C | Go | Go | C++ |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
✅ **Automatic / Zero-Config** – Works immediately, no setup required
|
✅ **Auto** – Automatically detected and loaded
|
||||||
⚙️ **Manual / Config-based** – Requires explicit configuration or modules
|
✅ **Hot** – Works immediately, no reload/restart is required
|
||||||
|
✅ **Yes** – Works immediately, no setup required
|
||||||
|
⚙️ **Manual** – Requires explicit configuration or modules
|
||||||
|
⚙️ **Reload** – Reload or restart is required
|
||||||
|
⚙️ **Limited** – Support is limited to certain features
|
||||||
|
⚙️ **External** – Requires an external module
|
||||||
❌ **No** – Not supported
|
❌ **No** – Not supported
|
||||||
|
|
||||||
## Simple benchmark by [Oha](https://github.com/hatoo/oha)
|
## Simple benchmark by [Oha](https://github.com/hatoo/oha)
|
||||||
|
|||||||
Reference in New Issue
Block a user