Live data from Hacker News

Microsoft YARP

github.com

131–140 of 153 posts

Re: Microsoft YARP

#131

>> 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 I'm really curious, does Microsoft have a crew of anthropologists walking around to figure out which team is reinventing wheels?

Typically platform teams like ours (.NET person here) gets to see what a wide variety of teams are doing or are trying to do. YARP was a case of that happening and it felt like a good opportunity to build something low level and extensible that could help other teams at Microsoft, the OSS community and could directly drive improvements into the .NET networking stack.

Re: Microsoft YARP

#132
post #121
post #48

Earlier quoted context omitted.

Why would someone need an in-process reverse proxy? I don't see what an in-process proxy would add that a request routing engine couldn't do. Or is the point that you can now add your reverse proxy configuration as just another project within the same solution?

We use it to proxy request from "modern" part of application moved to .net core to legacy parts of application, that are yet to be converted.

This is a "premiere use case" we've seen people use YARP for.

Re: Microsoft YARP

#133

Earlier quoted context omitted.

The main difference I see is that YARP is added right into the dotnet project itself. See the getting started : https://microsoft.github.io/reverse-proxy/articles/getting-s... From my understanding Kestrel passes request to this. > The proxy server is implemented a plugin component for ASP.NET Core applications. ASP.NET Core servers like Kestrel provide the front end for the proxy by listening for http requests and t…

So, basically vendor lock-in is the difference?

Extensibility via C# for custom rules. It's not as attractive if you have nothing to customize but we've found lots of developers want to write code to influence the proxying. If you're a .NET developer or you don't like writing LUA (what nginx uses) then you can use YARP.

Re: Microsoft YARP

#135

YARP is yet a another example of how C# is becoming a dominant systems language. The ease with which you can build a tailor-made reverse proxy is pretty amazing.

>C# is becoming a dominant systems language In 2022 everything is a system programming language. Next on that list is Javascript, I am sure.

JS wasn't sufficient, there, so we chose Go (Golang)

Re: Microsoft YARP

#136
post #30

How does this compare to nginx? Does it support websockets? I have an asp.net core websocket based app that need to support hundred of thousands concurrent websockets connection. I ll be taking a look at this because I don't wanna expose Kestrel directly to the internet.

It supports WebSockets, HTTP/2 (including gRPC) and HTTP/3 (with .NET 6+).

Re: Microsoft YARP

#137
One thing I'd like to add as a potential differentiator as well is that YARP runs very well on Windows and because it's build on ASP.NET Core, can run inside of IIS and directly on HTTP.sys as well (which means we can take advantage of cool features like http.sys request delegation where possible https://github.com/microsoft/reverse-proxy/commit/b9c13dbde9...). This means you get platform portability AND deep platform integration for free.

Re: Microsoft YARP

#138

YARP is yet a another example of how C# is becoming a dominant systems language. The ease with which you can build a tailor-made reverse proxy is pretty amazing.

> yet a another example of how C# is becoming a dominant systems language Perhaps a bit of a stretch. I am currently choose golang for a more systems like project because of startup time and gc pauses in c#/dotnet. Definitely nice to see nativeaot which should address the startup time issues.

Maybe a slight stretch to say that it is a dominant systems language, but not much of one to say that it is becoming one.

Microsoft made a huge organizational change to support their cross-platform initiatives.

Re: Microsoft YARP

#139

YARP is yet a another example of how C# is becoming a dominant systems language. The ease with which you can build a tailor-made reverse proxy is pretty amazing.

I guess I have to ask: What exactly is the use case for a tailor made reverse proxy? What customizations do people typically want to offload to the reverse proxy?

We have used this on a net core app when yarp was only a very basic half abandoned solution.

Basically, we needed to to auth on each request (can the user see this per a slightly complicated rights system) and we routed to automatically spin up containers,so discovery was also custom

Re: Microsoft YARP

#140

YARP is yet a another example of how C# is becoming a dominant systems language. The ease with which you can build a tailor-made reverse proxy is pretty amazing.

I guess I have to ask: What exactly is the use case for a tailor made reverse proxy? What customizations do people typically want to offload to the reverse proxy?

Custom load balancing rules could be an obvious usecase.
Post reply on HN