Sobre el proyecto
Rama es un framework de servicios modular para el lenguaje Rust, diseñado para construir clientes, servidores, proxies de red y combinaciones de estos. Enfatiza una arquitectura explícita y componible donde la pila de red se construye a partir de servicios, capas, transportes, protocolos y estado que tú mismo compones, haciendo visible la forma del sistema en el código.
Las capacidades clave incluyen:
- **Proxies**: Reverse, terminación TLS, HTTP(S), SOCKS5, SNI, MITM, transparente, distortion y proxies de red, además de soporte del protocolo HAProxy PROXY.
- **Aplicaciones web y APIs**: Enrutamiento por rutas y matchers, manejadores asíncronos con extractores de peticiones tipados y estado compartido, respuestas tipadas HTML/JSON/streaming, formularios y subida de archivos, recursos estáticos y middleware para autenticación, CSRF, CORS, compresión, timeouts y tracing.
- **Clientes y pilas de conectores**: Clientes HTTP(S) asíncronos para HTTP/1.1, HTTP/2, HTTP/3 con descubrimiento Alt-Svc, WebSocket, gRPC, ttRPC, clientes FastCGI, pilas de conectores personalizadas, pools de conexiones y emulación de User-Agent con perfiles de navegadores reales.
- **Servidores y controles de ingreso**: Servidores HTTP/1.1, HTTP/2, HTTP/3, WebSocket, SSE, gRPC, ttRPC, transportes TCP/UDP/QUIC/Unix, terminación TLS con certificados dinámicos, mTLS, ACME, inspección de protocolos y fingerprinting (JA3, JA4, PeetPrint, JA4H, Akamai HTTP/2).
- **Protocolos de aplicación y gateways**: WebSockets, SSE, Datastar, gRPC, ttRPC, FastCGI, feeds RSS/Atom.
- **Enrutamiento y descubrimiento de proxies**: Rutas explícitas, proxies upstream, obtención/evaluación/generación de PAC, reglas de bypass, caché de fallos de rutas.
- **Adaptación de contenido**: Clientes/servidores ICAP y capas de adaptación HTTP.
- **Runtime e interoperabilidad**: Servicios asíncronos, adaptadores bloqueantes opcionales, interoperabilidad con Tower, apagado graceful.
- **TLS e identidad**: Rustls, BoringSSL, terminación TLS, certificados dinámicos, mTLS, ACME, certificate pinning.
- **Inspección de tráfico**: Inspección de protocolos, captura e interceptación HTTP/WebSocket/TLS, proxy MITM con interfaz web, grabación/reproducción HAR, exportación a curl.
- **Procesamiento de datos**: Reescritura de HTML en streaming, selección y reescritura de JSON/JSONPath en streaming, JSON-LD.
- **Observabilidad**: Tracing y OpenTelemetry, métricas HTTP y de transporte, telemetría de runtime.
- **Scripting embebido**: Runtime de JavaScript para evaluación y generación de PAC.
- **Redes de bajo nivel**: TCP, UDP, QUIC v1/v2, sockets Unix, DNS, middleware de transporte, pooling de conexiones.
- **Integraciones de plataforma**: Apple Network Extension, Apple XPC, Linux tproxy, Windows WFP.
El binario CLI `rama` permite usar partes de Rama sin escribir código Rust, incluyendo ejecutar proxies HTTP(S)/SOCKS5 con modo MITM e interfaz web, clientes HTTP/WebSocket, resolución DNS, sondeo TLS, evaluación de PAC y servicios de prueba.
El framework es desarrollado por Plabayo y se usa en producción para seguridad de red, extracción de datos, gateways de API y enrutamiento. Requiere Rust 1.96 y soporta Linux, macOS y Windows como plataformas tier 1.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.