canário ativo em exu.albrz.cloud

Um servidor de borda
escrito em Zig, sem atalhos.

exu é um servidor web e reverse proxy Linux-first, feito para operar diretamente sob tráfego não confiável — uma alternativa real a Nginx e Caddy, sem herdar sua sintaxe nem seus defaults.

zig build run
$ zig build run -- -foreground -runas maicos \ -bind 127.0.0.1:8090 -sandbox public --access-log stderr
info: master started generation 1 with 1 worker(s)
info: exu listening on 127.0.0.1:8090
{"event":"http_access","method":"GET","path":"/","status":200,"handler":"static"}
0.16.0
Zig, fixado por decisão de arquitetura
1.024
arquivos em cache com revalidação
64 MiB
limite de body / gateway
32 KiB
limite de headers
Recursos

Já implementado, testado, em produção-canário

Um único runtime cobrindo estático, FastCGI e reverse proxy — com master/workers, reload sem downtime e sandbox de filesystem.

HTTP/1.0 e 1.1

Keep-alive e tarefas concorrentes por conexão, com limites explícitos de headers e body.

Master / workers

-cpu N, respawn automático, reload geracional e drain gracioso sem indisponibilidade.

Sandbox de filesystem

Sandbox global, por host e por vhost — path normalizado e contido no document root.

Estático eficiente

ETag, Last-Modified, condicionais, range requests, gzip e cache de até 1.024 arquivos.

FastCGI & proxy

FastCGI TCP/Unix com streaming/SSE, e reverse proxy com bodies em fluxo e X-Forwarded-*.

Observabilidade nativa

X-Request-ID em toda resposta e access log JSON Lines, pronto para journald.

Arquitetura

Em evolução, por design

Engine HTTP, roteamento e observabilidade serão extraídos como camadas independentes — permitindo comparar implementações sem reescrever handlers.

Listener / processo master
  └── workers
        └── HTTP engine
              └── router
                    ├── redirect
                    ├── handler tipado
                    ├── FastCGI
                    ├── arquivo estático
                    └── reverse proxy
Roadmap

Marcos até a borda

Cada marco tem um gate objetivo — não avança por preferência técnica, só por evidência.

Marco 0 — Baseline própria concluído
Build e testes em Zig 0.16.0, HTTP/1.1, estáticos, FastCGI, reverse proxy, master/workers com reload geracional.
Marco 1 — Canário observável em VPS em andamento
Access logs JSON, request ID, unit systemd, soak de sete dias — é exatamente o que roda em exu.albrz.cloud agora.
Marco 2 — Tráfego hostil planejado
Deadlines de conexão, limites de recursos, fuzzing e testes de slowloris.
Marco 3 — Reverse proxy de produção planejado
WebSocket, health checks, balanceamento e circuit breaking.
Marco 4 — TLS nativo planejado
TLS 1.2/1.3 auditado, SNI, ALPN e reload transacional sem interromper conexões.
Estado honesto

O que dá pra confiar hoje

O projeto é explícito sobre o que falta — nada aqui é maquiado.

✅ Pronto para validar
  • HTTP/1.1 estrito com keep-alive
  • Master/workers, respawn e drain
  • Sandbox e múltiplos document roots
  • Cache condicional, range e gzip
  • FastCGI e reverse proxy TCP/Unix
  • Access log JSON + X-Request-ID
⏳ Ainda não é borda
  • TLS nativo e HTTP/2
  • Logs de erro estruturados e métricas
  • Deadlines completos de I/O
  • Múltiplos listeners/servidores
  • WebSocket e balanceamento
  • Fuzzing, slowloris e soak prolongado