3 ms·
> 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 w
by moogly 5y ago
> 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.
- akshayshah 5y agoAh, 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.sockets.socket?view=net-6.0 https://docs.microsoft.com/en-us/dotnet/api/system.net.socke...
- moogly 5y agoYou can find the Socket partial class files here: https://github.com/dotnet/runtime/tree/main/src/libraries/System.Net.Sockets/src/System/Net/Sockets 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.