Re:Microsoft YARP
by akshayshah on Sunday February 20, 2022 @05:24PM
(#30409837)
Ah, good to know! I'm barely C#-literate, so the Socket docs[0] aren't totally intelligible to me. Somewhere under the hood, though, there must be a common abstraction sitting in front of the relevant Windows and Linux syscalls - did the libuv stuff just move down a few layers, or is this using something completely different?
Either way, I'd be shocked if this weren't designed top-to-bottom to have excellent performance on Windows.
[0]: https://docs.microsoft.com/en-us/dotnet/api/system.net.socke...
You can find the Socket partial class files here:
https://github.com/dotnet/runtime/tree/main/src/libraries/Sy...
Socket.cs, Socket.Unix.cs, Socket.Windows.cs, etc...
AFAIK, there are no parts of libuv left in .NET Core. That was mostly used to quickly get the framework up and running on Linux.
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.