Herramienta de desarrollo · 2026
Sonda — proxy depurador de tráfico HTTP y gRPC
Un proxy que se interpone entre servicios locales, captura tráfico HTTP y gRPC, y decodifica protobuf incluso sin un esquema conocido de antemano.
Mi aporte
Diseñé y construí un proxy de depuración para tráfico HTTP y gRPC entre servicios locales, con captura, búsqueda, reenvío de llamadas y diff estructural entre capturas.
Proyecto propio. Corre completo en local vía Docker o binario único; no es un servicio desplegado.
Tecnologías
- Go
- gRPC
- Protobuf
- SQLite
- Docker
El contexto
Para HTTP existen herramientas como mitmproxy que capturan tráfico ajeno para inspeccionarlo; para gRPC no hay un equivalente — grpcurl y grpcui solo sirven para hacer llamadas propias. Decodificar protobuf capturado sin conocer su esquema de antemano requiere resolver el protocolo real, no una integración de API.
La solución
El proxy se interpone por puerto: cada cliente apunta a Sonda en vez del servicio real. Sobre HTTP/2 a nivel de frame, decodifica protobuf dinámicamente vía reflection y descriptor sets, con wire format estructural como último recurso si no hay esquema disponible. Las capturas quedan en SQLite con búsqueda de texto completo, se pueden reenviar y compararse entre sí con un diff que entiende la estructura (no el texto) de JSON y protobuf.
Qué incluye
- Interposición explícita por puerto y captura de tráfico HTTP y gRPC.
- Decodificación de protobuf sin esquema previo vía reflection y descriptor sets.
- Diff estructural entre capturas y búsqueda de texto completo sobre SQLite.
¿Te interesa resolver un desafío similar?
Conversemos Ver repositorio