Lançamento do Pingora 0.4, um framework para criação de serviços de rede.

A empresa Cloudflare lançou a versão 0.4 do framework Pingora, destinado ao desenvolvimento de serviços de rede protegidos e de alto desempenho em Rust. O proxy construído com o Pingora já é utilizado na rede de entrega de conteúdo da Cloudflare há mais de dois anos, substituindo o nginx e processando mais de 40 milhões de solicitações por segundo. O código é escrito em Rust e publicado sob a licença Apache 2.0.

Principais recursos do Pingora:

  • Suporte a HTTP/1 e HTTP/2 (planejando HTTP/3), além da possibilidade de criar serviços que utilizem seus próprios protocolos ou UDP/TCP.
  • Suporte ao processamento de solicitações em múltiplas threads de forma assíncrona.
  • Possibilidade de anexar manipuladores de callback e filtros, permitindo o gerenciamento de várias etapas do processamento da solicitação, bem como modificar, redirecionar, bloquear e registrar solicitações e respostas.
  • Proxy para gRPC e WebSocket.
  • Balanceadores de carga plugáveis.
  • Capacidade de alterar a configuração sem reinicialização.
  • Suporte à atualização do código do aplicativo sem interromper as conexões.
  • Ferramentas para comutação de carga em caso de falha (failover).
  • Integração com diversos sistemas de monitoramento e registro de logs (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Suporte à criptografia TLS (utilizando OpenSSL, BoringSSL ou Rustls).
  • Pacotes Rust prontos para criar proxies HTTP, trabalhar com protocolos de rede, analisar cabeçalhos HTTP, contabilizar e limitar tráfego, balancear carga, trabalhar com tabelas de hash distribuídas Ketama, manter o cache em memória e processar timeouts de forma assíncrona.

Entre as mudanças na nova versão:

  • Suporte inicial para a biblioteca criptográfica Rustls, que utiliza provedores de criptografia baseados nas bibliotecas aws-lc-rs e ring, que são baseadas no BoringSSL.
  • Suporte experimental para a plataforma Windows.
  • Modo TLS fictício (dummy TLS), que pode ser aplicado em situações onde não é possível usar uma implementação real do TLS.
  • Adicionada a suporte ao módulo gRPC-web para traduzir solicitações de clientes gRPC-web em solicitações para servidor gRPC.
  • Possibilidade de processar conexões H2C (HTTP/2 sobre TCP puro, sem criptografia) e HTTP/1 em uma única porta de rede.
  • Adicionada a capacidade de conectar implementações próprias da função connect() para alterar o comportamento na configuração de conexões de rede, por exemplo, para definir opções adicionais para o socket ou simular erros durante testes.
  • Possibilidade de ignorar respostas informativas durante o proxy, como respostas com o cabeçalho "Expect: 100-continue".
  • Adicionado suporte para descompactar respostas comprimidas com gzip.
  • Implementação de monitoramento do estado do backend.
  • Possibilidade de vinculação a um intervalo de portas locais.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster