Earlier versions of ASP.NET Core used libuv as an implementation detail of how asynchronous IO was performed. In ASP.NET Core 2.0, an alternative transport was developed based on sockets. In ASP.NET Core 2.1 we switched to using the socket transport by default, but kept libuv support around for compatibility reasons.
At this point, use of the sockets transport is far more common than the libuv transport, so we're planning on obsoleting the libuv support in .NET 5.0, with a plan to remove it entirely in .NET 6.0.
As part of this, we will also plan not to add support for new OS platforms (like Windows ARM64) in the .NET 5.0 timeframe.
If you have a blocking issue that requires the use of the libuv transport, we would love to hear about it in the comments below.
While not specifically blocking, I would love to see benchmarks that show sockets perform better than libuv, specifically for linux. I will also add that libuv is convenient/performant for me since I run both raw tcp sockets and web service endpoints.
Unfortunately, we stopped tracking libuv performance on https://aka.ms/aspnet/benchmarks earlier this year, but before we did, the managed socket transport either beat or matched libuv performance in all of our benchmarked scenarios on Windows and Linux. Initially we struggled to get managed sockets to match libuv's "JSON platform" numbers, but we eventually reached parity even in that scenario.
Unfortunately, I haven't found many screenshots of benchmarks from back when we compared the two transports, but here's one from MVC plaintext scenario on Linux from about a year ago which shows the managed socket transport with a ~20% edge.
What is the plan for listening on unix socket? Is it supported on .net 5 without libuv?
Unix domain sockets are supported without libuv. They have been supported by the default socket transport since 3.0! https://github.com/dotnet/aspnetcore/pull/10560
Most helpful comment
Unix domain sockets are supported without libuv. They have been supported by the default socket transport since 3.0! https://github.com/dotnet/aspnetcore/pull/10560