Sovereign ultra-low-memory L7 reverse proxy, multi-domain SNI TLS multiplexer & active perimeter defense gateway in pure Rust.
Rust
1
5 commits
updated Sep 24, 2026
____ __
/ __ \_________ ____ __ ______ / /__ ____ _
/ /_/ / ___/ __ \/ __ \/ / / / / _ \/ / _ \/ __ `/
/ ____/ / / /_/ / /_/ / /_/ / / __/ / __/ /_/ /
\/ \/ \____/ .___/\__, /_/\___/_/\___/\__,_/
/_/ /____/
Sovereign L7 Reverse Proxy & Perimeter Defense Gate
In ancient classical Greece, the Propylaea (Προπύλαια) stood as the monumental fortified gateway to the Acropolis of Athens—a majestic boundary shielding the sacred citadel within while welcoming legitimate citizens. Propylea serves the exact same role for your modern web architecture: a sovereign, ultra-low-memory L7 reverse proxy, multi-domain SNI TLS multiplexer, and perimeter defense gateway written in 100% pure Rust.
Modern web infrastructure is plagued by two persistent problems:
/.env, /wp-login.php, /.git/config) directly upstream to your web applications, wasting CPU cycles and exposing application attack surfaces.Propylea solves both:
libc::malloc_trim.phylax defense pipeline, Propylea evaluates incoming request paths against an in-memory threat trie in $< 15\text{ ns}$. Automated crawlers and vulnerability sprayers are served stealth 404 Not Found responses before they ever reach your upstream services.| Dimension | Propylea | Caddy | Nginx | Traefik |
|---|---|---|---|---|
| Language & Safety | Pure Rust (100% memory safe) | Go (GC pauses) | C (Memory unsafety risk) | Go (GC pauses) |
| Memory Footprint (RSS) | < 15 MB (Active Vacuum) | 45 – 90 MB | 15 – 35 MB | 60 – 120 MB |
| Active Perimeter Defense | Native Built-in (< 15ns) | ❌ (Needs plugins) | ❌ (ModSecurity overhead) | ❌ (External WAF required) |
| AbuseIPDB Auto-Reporting | Native (Free-Tier Safe) | ❌ None | ❌ None (Requires Fail2Ban) | ❌ None |
| WebSocket Tunneling | Native Full-Duplex | Native | Native | Native |
| HTTP-to-HTTPS 301 Redirect | Zero-Allocation Instant | Native | Configuration directive | Native |
| Configuration Model | Single 15-line TOML | Caddyfile / JSON | Multi-file nginx.conf | Complex YAML / Labels |
| Forensic Telemetry | Bounded Ring Buffer + Masking | Disk Logs Only | Disk Logs Only | Metrics endpoint |
Below is an authentic execution trace captured at the ingress boundary during a mass Internet scanning wave:
2026-09-24T04:12:01.002Z WARN [PROPYLEA-EDGE] Hostile reconnaissance scan trapped at ingress
├── Remote IP: 198.51.100.42 (Anonymous VPN / Proxy)
├── Target URI: GET /.env
├── Action: Intercepted in 11ns (stealth 404 returned, 0 bytes proxied upstream)
└── Threat Intelligence: Dispatched async incident report to AbuseIPDB (Confidence: 100%)
2026-09-24T04:12:01.450Z INFO [PROPYLEA-ROUTER] Legitimate client proxied upstream
├── Remote IP: 203.0.113.19
├── Target URI: GET /api/v1/status
├── Resolved Upstream: 127.0.0.1:8080 (app.example.com)
├── Duration: 142µs
└── Telemetry: Recorded in ring buffer (Query redacted: /api/v1/status?token=[REDACTED])
2026-09-24T04:15:00.000Z DEBUG [GOVERNOR] Executing autonomous resource hygiene pass
└── Memory Vacuum: malloc_trim(0) returned 4.2 MB unmapped pages to kernel (RSS: 11.4 MB)
git clone https://github.com/xuoxod/propylea.git
cd propylea
cargo build --release
Create propylea.toml:
[server]
http_bind = "0.0.0.0:80"
https_bind = "0.0.0.0:443"
[security]
enable_defense = true
server_banner = "Aegis-Apollo-Proxy-Service/4.12"
# abuseipdb_api_key = "YOUR_KEY"
[maintenance]
hygiene_interval_secs = 300
memory_vacuum = true
[[routes]]
domains = ["example.com", "www.example.com"]
upstream = "127.0.0.1:8080"
cert = "/etc/letsencrypt/live/example.com/fullchain.pem"
key = "/etc/letsencrypt/live/example.com/privkey.pem"
websocket = true
# Validate configuration and certificate syntax without binding ports
./target/release/propylea check --config propylea.toml
# Start the reverse proxy
./target/release/propylea serve --config propylea.toml
Internet Ingress Traffic
│
┌───────────────────────┴───────────────────────┐
▼ ▼
Port 80 (HTTP) Port 443 (HTTPS)
Instant 301 Redirect SNI TLS Multiplexer
(Preserves URI + Query) │
┌───────────┴───────────┐
▼ ▼
Hostile Scanner Legitimate Request
(/.env, /wp-login.php) │
│ ▼
│ Upstream Router O(1)
│ (Host / :authority)
▼ │
[Stealth 404] ▼
(Drop in < 15ns) Streaming Proxy / WebSocket
│ │
Async Threat Report ▼
(AbuseIPDB / Webhooks) Backend Upstream
(127.0.0.1:8080 / etc.)
Dual-licensed under either:
at your option.
5 commits
Rust
98.2%
Shell
1.8%
Sovereign ultra-low-memory L7 reverse proxy, multi-domain SNI TLS multiplexer & active perimeter defense gateway in pure Rust.
Rust
1
5 commits
updated Sep 24, 2026
____ __
/ __ \_________ ____ __ ______ / /__ ____ _
/ /_/ / ___/ __ \/ __ \/ / / / / _ \/ / _ \/ __ `/
/ ____/ / / /_/ / /_/ / /_/ / / __/ / __/ /_/ /
\/ \/ \____/ .___/\__, /_/\___/_/\___/\__,_/
/_/ /____/
Sovereign L7 Reverse Proxy & Perimeter Defense Gate
In ancient classical Greece, the Propylaea (Προπύλαια) stood as the monumental fortified gateway to the Acropolis of Athens—a majestic boundary shielding the sacred citadel within while welcoming legitimate citizens. Propylea serves the exact same role for your modern web architecture: a sovereign, ultra-low-memory L7 reverse proxy, multi-domain SNI TLS multiplexer, and perimeter defense gateway written in 100% pure Rust.
Modern web infrastructure is plagued by two persistent problems:
/.env, /wp-login.php, /.git/config) directly upstream to your web applications, wasting CPU cycles and exposing application attack surfaces.Propylea solves both:
libc::malloc_trim.phylax defense pipeline, Propylea evaluates incoming request paths against an in-memory threat trie in $< 15\text{ ns}$. Automated crawlers and vulnerability sprayers are served stealth 404 Not Found responses before they ever reach your upstream services.| Dimension | Propylea | Caddy | Nginx | Traefik |
|---|---|---|---|---|
| Language & Safety | Pure Rust (100% memory safe) | Go (GC pauses) | C (Memory unsafety risk) | Go (GC pauses) |
| Memory Footprint (RSS) | < 15 MB (Active Vacuum) | 45 – 90 MB | 15 – 35 MB | 60 – 120 MB |
| Active Perimeter Defense | Native Built-in (< 15ns) | ❌ (Needs plugins) | ❌ (ModSecurity overhead) | ❌ (External WAF required) |
| AbuseIPDB Auto-Reporting | Native (Free-Tier Safe) | ❌ None | ❌ None (Requires Fail2Ban) | ❌ None |
| WebSocket Tunneling | Native Full-Duplex | Native | Native | Native |
| HTTP-to-HTTPS 301 Redirect | Zero-Allocation Instant | Native | Configuration directive | Native |
| Configuration Model | Single 15-line TOML | Caddyfile / JSON | Multi-file nginx.conf | Complex YAML / Labels |
| Forensic Telemetry | Bounded Ring Buffer + Masking | Disk Logs Only | Disk Logs Only | Metrics endpoint |
Below is an authentic execution trace captured at the ingress boundary during a mass Internet scanning wave:
2026-09-24T04:12:01.002Z WARN [PROPYLEA-EDGE] Hostile reconnaissance scan trapped at ingress
├── Remote IP: 198.51.100.42 (Anonymous VPN / Proxy)
├── Target URI: GET /.env
├── Action: Intercepted in 11ns (stealth 404 returned, 0 bytes proxied upstream)
└── Threat Intelligence: Dispatched async incident report to AbuseIPDB (Confidence: 100%)
2026-09-24T04:12:01.450Z INFO [PROPYLEA-ROUTER] Legitimate client proxied upstream
├── Remote IP: 203.0.113.19
├── Target URI: GET /api/v1/status
├── Resolved Upstream: 127.0.0.1:8080 (app.example.com)
├── Duration: 142µs
└── Telemetry: Recorded in ring buffer (Query redacted: /api/v1/status?token=[REDACTED])
2026-09-24T04:15:00.000Z DEBUG [GOVERNOR] Executing autonomous resource hygiene pass
└── Memory Vacuum: malloc_trim(0) returned 4.2 MB unmapped pages to kernel (RSS: 11.4 MB)
git clone https://github.com/xuoxod/propylea.git
cd propylea
cargo build --release
Create propylea.toml:
[server]
http_bind = "0.0.0.0:80"
https_bind = "0.0.0.0:443"
[security]
enable_defense = true
server_banner = "Aegis-Apollo-Proxy-Service/4.12"
# abuseipdb_api_key = "YOUR_KEY"
[maintenance]
hygiene_interval_secs = 300
memory_vacuum = true
[[routes]]
domains = ["example.com", "www.example.com"]
upstream = "127.0.0.1:8080"
cert = "/etc/letsencrypt/live/example.com/fullchain.pem"
key = "/etc/letsencrypt/live/example.com/privkey.pem"
websocket = true
# Validate configuration and certificate syntax without binding ports
./target/release/propylea check --config propylea.toml
# Start the reverse proxy
./target/release/propylea serve --config propylea.toml
Internet Ingress Traffic
│
┌───────────────────────┴───────────────────────┐
▼ ▼
Port 80 (HTTP) Port 443 (HTTPS)
Instant 301 Redirect SNI TLS Multiplexer
(Preserves URI + Query) │
┌───────────┴───────────┐
▼ ▼
Hostile Scanner Legitimate Request
(/.env, /wp-login.php) │
│ ▼
│ Upstream Router O(1)
│ (Host / :authority)
▼ │
[Stealth 404] ▼
(Drop in < 15ns) Streaming Proxy / WebSocket
│ │
Async Threat Report ▼
(AbuseIPDB / Webhooks) Backend Upstream
(127.0.0.1:8080 / etc.)
Dual-licensed under either:
at your option.
5 commits
Rust
98.2%
Shell
1.8%