YARP is a library to help create reverse proxy servers that are high-performance, production-ready, and highly customizable. We found a bunch of internal teams at Microsoft who were either building a reverse proxy for their service or had been asking about APIs and tech for building one, so we decided to get them all together to work on a common solution, this project. Each of these projects was doing something slightly off the beaten path which meant they were not well served by existing proxies, and customization of those proxies had a high cost and ongoing maintenance considerations. Many of the existing proxies were built to support HTTP/1.1, but with workloads changing to include gRPC traffic, they require HTTP/2 support which requires a significantly more complex implementation. By using YARP the projects get to customize the routing and handling behavior without having to implement the http protocol.
Features
- YARP is built on .NET using the infrastructure from ASP.NET and .NET
- The key differentiator for YARP is that it's been designed to be easily customized and tweaked via .NET code
- Matches the specific needs of each deployment scenario
- Eventually we expect YARP to ship as a library, project template, and a single-file exe
- Build a robust, performant proxy server
- YARP provides a configuration API to enable that customization in-proc