Building a Lightweight Alternative to Envoy Proxy
Date: 2022-03-011. Motivation
In my previous role, I struggled with slow Pod cold starts. Whenever a Pod spun up, incoming requests would pile up and wait until it was finally ready. Most of that delay came from running Envoy just to handle the gRPC-Web → gRPC translation layer. It felt like using a huge, complex system for a very small piece of functionality.
That experience pushed me to build Griffin — a lightweight proxy designed specifically to remove that bottleneck. Griffin is built on top of hyper.rs and focuses on doing one thing well: translating gRPC-Web requests into standard gRPC calls.
2. Result
The result is a proxy that’s incredibly small and fast. Griffin’s binary is only 1 MB, which is:
- 100× smaller than a full Envoy build (~140 MB+)
- 15× smaller than grpcwebproxy (~15.3 MB)
- no garbage collector
Check out the proxy here: https://github.com/exajoy/griffin