Pular para o conteúdo principal

O que é o edgeProxy?

edgeProxy é um proxy TCP distribuído de alta performance escrito em Rust, projetado para operar em Points of Presence (POPs) ao redor do mundo. Ele roteia conexões de clientes para backends otimais baseado em proximidade geográfica, saúde do backend, carga atual e limites de capacidade.

Funcionalidades Principais

  • Roteamento Geo-Aware: Direciona clientes para o backend regional mais próximo usando MaxMind GeoIP
  • Afinidade de Cliente: Sessões persistentes com TTL configurável garantem atribuição consistente de backend
  • Balanceamento de Carga Ponderado: Pontuação inteligente baseada em região, carga e peso do backend
  • Limites Soft/Hard: Degradação graciosa com limites de conexão por backend
  • Configuração Dinâmica: Hot-reload do banco de roteamento sem reinicialização
  • Proxy Zero-Copy: Cópia TCP bidirecional eficiente com Tokio
  • Pronto para WireGuard: Projetado para conectividade via rede overlay entre POPs

Casos de Uso

CenárioDescrição
CDN/Edge ComputingPOPs globais servindo conteúdo da origem mais próxima
Servidores de JogosAfinidade de sessão para conexões de jogos stateful
APIs Multi-RegiãoFailover automático e geo-roteamento
Proxies de Banco de DadosRoteamento de réplicas de leitura baseado na localização do cliente

Visão Geral da Arquitetura

Visão Geral da Arquitetura

Início Rápido

# Clone o repositório
git clone https://github.com/andrebassi/edgeproxy.git
cd edgeproxy

# Build e execução
task build
task run

# Ou com Docker
task docker-build
task docker-up
task docker-test

Stack Tecnológica

ComponenteTecnologia
LinguagemRust 2021 Edition
Runtime AsyncTokio (full features)
Banco de DadosSQLite (rusqlite)
ConcorrênciaDashMap (lock-free)
GeoIPMaxMind GeoLite2
RedeWireGuard overlay

Próximos Passos