A empresa Cloudflare anunciou o segundo lançamento do framework Pingora, destinado ao desenvolvimento de serviços de rede seguros e de alto desempenho na linguagem Rust. Construído com o Pingora, o proxy é usado há cerca de um ano na rede de entrega de conteúdo da Cloudflare em vez do nginx, processando mais de 40 milhões de requisições por segundo. O código é escrito na linguagem 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 de recursos para criar serviços que utilizam seus próprios protocolos ou UDP/TCP.
- Capacidade de processamento multithread de solicitações em modo assíncrono.
- Suporte à anexação de manipuladores de callback e filtros, permitindo gerenciar várias etapas do processamento da solicitação, além de 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 (usando OpenSSL ou BoringSSL).
- 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 adicionado para a configuração de filtros para cabeçalhos HTTP/2 adicionais.
- Adicionada a capacidade de alterar o tamanho do buffer de pacotes de entrada para TCP.
- Adicionada a função body_bytes_read().
- Adicionado o filtro cache_not_modified_filter.
- Adicionada a capacidade de registrar chaves TLS.
- Adicionada a função de callback purge_response.
Fonte: opennet.ru
