Live data from Hacker News

Microsoft YARP

github.com

31–40 of 153 posts

Re: Microsoft YARP

#31

Sometimes it feels like Microsoft and/or C#-enjoyers just want to re-implement everything that already exists. While having many implementations to choose from if you need to select a solution to an outstanding problem is great, it makes me wonder why re-implementing something with no discernible benefit keeps eating time/resources all over the place. In similar cases of implementing reverse proxies in C, C++, Rust,…

Would your reaction have been different if, instead of Microsoft, this article was submitted by some random person entitled "Show HN: I built a reverse proxy in C#"?

By your logic, the world should be operating on a single OS, with a single web browser, paired with a single web server, because why re-implement something that already exists?

Re: Microsoft YARP

#32

Sometimes it feels like Microsoft and/or C#-enjoyers just want to re-implement everything that already exists. While having many implementations to choose from if you need to select a solution to an outstanding problem is great, it makes me wonder why re-implementing something with no discernible benefit keeps eating time/resources all over the place. In similar cases of implementing reverse proxies in C, C++, Rust,…

Would your reaction have been different if, instead of Microsoft, this article was submitted by some random person entitled "Show HN: I built a reverse proxy in C#"? By your logic, the world should be operating on a single OS, with a single web browser, paired with a single web server, because why re-implement something that already exists?

Pretty much every "I built a thing" post is met with the same response. MS isnt special.

I think pretty much every open source project that wants to be taken seriously needs to compare itself with its competitors.

Re: Microsoft YARP

#33
post #24

Sometimes it feels like Microsoft and/or C#-enjoyers just want to re-implement everything that already exists. While having many implementations to choose from if you need to select a solution to an outstanding problem is great, it makes me wonder why re-implementing something with no discernible benefit keeps eating time/resources all over the place. In similar cases of implementing reverse proxies in C, C++, Rust,…

To clarify, are you saying that: 1. There are already good reverse proxy libraries in C#? 2. There are already good reverse proxy libraries in other languages? 3. There are already good reverse proxy applications ? If it's #1, then yeah, it would be nice if the ReadMe explained why YARP is different. To be fair, they're at least consolidating a bunch of efforts within Microsoft: > We found a bunch of internal teams a…

Can you share more specifics on what you needed to customize that went beyond nginx's capabilities?

Re: Microsoft YARP

#34
post #32

Earlier quoted context omitted.

Would your reaction have been different if, instead of Microsoft, this article was submitted by some random person entitled "Show HN: I built a reverse proxy in C#"? By your logic, the world should be operating on a single OS, with a single web browser, paired with a single web server, because why re-implement something that already exists?

Pretty much every "I built a thing" post is met with the same response. MS isnt special. I think pretty much every open source project that wants to be taken seriously needs to compare itself with its competitors.

From what I can tell they built a tool for themselves to use internally, and open-sourced it. I don't think they were looking for approval or to be taken seriously.

Similarly, Igor built nginx to solve a particular problem, and I think it was a few years before it went open-source.

I can't imagine most OSS developers have delusions of grandeur.

Re: Microsoft YARP

#35
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.

Used it several weeks ago at work in an app which actively uses WebSockets. It just works.

Re: Microsoft YARP

#36
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.

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 then passing them to the proxy for paths that the proxy has registered.

Re: Microsoft YARP

#37
post #13

Earlier quoted context omitted.

So this thing is 2x faster than Envoy, something wrong in the benchmark probably.

mdasen has already pointed out that "2x" seems to overstate the difference by quite a bit. YARP also has a spikier max latency, which I'd expect for a GC'ed language. I don't see a way to choose the benchmarking platform in the PowerBI dashboard, so I assume all these numbers were collected on Windows. In that case, it doesn't surprise me that YARP is faster: Envoy uses libevent for cross-platform I/O, but libevent i…

> Kestrel, YARP's underlying webserver, uses libuv instead

Kestrel (as used in ASP.NET) uses a Socket-based transport since .NET Core 2.1 The libuv transport was marked as obsolete in .NET 5 and has been removed as of .NET 6, I believe.

Re: Microsoft YARP

#38
post #29
post #18

Earlier quoted context omitted.

> re-implementing something with no discernible benefit keeps eating time/resources all over the place. > is a shame considering the benefits of pooling resources on existing implementations would have. What exactly would you prefer these developers spend their time on instead of this work? There are a lot of benefits to being able to integrate your own reverse proxy directly into your software stack. C# developers e…

> There are a lot of benefits to being able to integrate your own reverse proxy directly into your software stack. C# developers enjoy these as much as anyone else would. I take this at face value but it would be nice to know what the benefits are vs nginx and other off the shelf solutions. The readme explains the benefit for Microsoft but not how it stacks against off the self solutions.

> The readme explains the benefit for Microsoft but not how it stacks against off the self solutions.

Totally agree. Seems to me that the main benefit is that it's easy to extend in .NET, vs. C/C++/Lua/WASM.

Re: Microsoft YARP

#39
post #29
post #18

Earlier quoted context omitted.

> re-implementing something with no discernible benefit keeps eating time/resources all over the place. > is a shame considering the benefits of pooling resources on existing implementations would have. What exactly would you prefer these developers spend their time on instead of this work? There are a lot of benefits to being able to integrate your own reverse proxy directly into your software stack. C# developers e…

> There are a lot of benefits to being able to integrate your own reverse proxy directly into your software stack. C# developers enjoy these as much as anyone else would. I take this at face value but it would be nice to know what the benefits are vs nginx and other off the shelf solutions. The readme explains the benefit for Microsoft but not how it stacks against off the self solutions.

> it would be nice to know what the benefits are vs nginx and other off the shelf solutions.

Biggest difference in my view is being able to make synchronous blocking calls directly into any arbitrary business code in order to determine the fate of a request. This can include rule/policy engines as well as auditing & tracing frameworks.

Re: Microsoft YARP

#40
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.

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…

I see. So it can operate in-process? Could in theory be much faster than nginx out-of-process model.
Post reply on HN