40 millones de peticiones por segundo y sin fugas de memoria: Pingora, el framework de red en Rust, lanza una gran actualización

40 millones de peticiones por segundo y sin fugas de memoria: Pingora, el framework de red en Rust, lanza una gran actualización

Presentan nueva versión de la herramienta para crear servidores proxy de alto rendimiento

image

Los desarrolladores presentaron una nueva versión del marco de red Pingora, una herramienta para crear servicios de red rápidos y fiables en el lenguaje Rust. El proyecto ya funciona bajo alta carga desde hace varios años y, según los autores, procesa más de 40 millones de solicitudes de Internet por segundo. Ahora la plataforma recibió una actualización importante con capacidades ampliadas de seguridad, filtrado de conexiones y configuración de proxy.

Pingora está diseñado para crear servidores proxy, equilibradores de carga y otros componentes de red. Se promociona como una alternativa más segura a las soluciones en C y C++, ya que Rust proporciona control de memoria y reduce el riesgo de vulnerabilidades típicas. El marco admite HTTP versiones 1 y 2, el proxy de gRPC y de websockets, así como cifrado TLS mediante distintas bibliotecas criptográficas. Dispone de mecanismos de recarga suave, estrategias de balanceo y tolerancia a fallos ampliables, además de herramientas de observabilidad.

La versión 0.7.0 introduce un mecanismo ampliable SslDigest para conservar el contexto TLS del usuario y una nueva interfaz ConnectionFilter para el filtrado temprano de conexiones TCP. Se añadió una abstracción virtual del flujo de transporte de nivel L4, se incorporó la verificación de certificado y del nombre del host al usar la biblioteca rustls, así como soporte para el archivo de registro de claves SSLKEYLOGFILE. Los desarrolladores expusieron la estructura HttpProxy para módulos externos, de modo que se pueda configurar con mayor profundidad la lógica de proxy, y añadieron un modo de autenticación mutua mediante certificados de cliente.

En la actualización se mejoró el funcionamiento de la caché y de las consultas en segundo plano, se añadió el seguimiento del volumen del cuerpo de la respuesta para HTTP 1 y HTTP 2, y se ampliaron los parámetros de limitación y el control de pesos de las respuestas. Se hicieron numerosas correcciones de errores relacionadas con los tiempos de espera, el procesamiento de encabezados, fragmentos y búferes. También se actualizaron las dependencias, incluida la biblioteca lru, para cerrar una vulnerabilidad registrada.

El entorno principal compatible con Pingora sigue siendo Linux. Los sistemas de la familia Unix, incluido macOS, se indican como compatibles con ciertas limitaciones. El soporte para Windows todavía está en una fase temprana y se desarrolla gracias a la comunidad. La versión mínima de Rust soportada en este momento es la 1.84, y la política del proyecto permite su aumento periódico.

El proyecto se distribuye bajo la licencia Apache 2.0 y está orientado a desarrolladores a los que les importan el rendimiento, la configuración flexible y una mayor seguridad de los servicios de red.