Kestrel: Libuv transport marked as obsolete
Earlier versions of ASP.NET Core used Libuv as an implementation detail of how asynchronous input and output was performed. In ASP.NET Core 2.0, an alternative, Socket-based transport was developed. In ASP.NET Core 2.1, Kestrel switched to using the
Socket-based transport by default. Libuv support was maintained for compatibility reasons.
At this point, use of the
Socket-based transport is far more common than the Libuv transport. Consequently, Libuv support is marked as obsolete in .NET 5.0 and will be removed entirely in .NET 6.0.
As part of this change, Libuv support for new operating system platforms (like Windows ARM64) won't be added in the .NET 5.0 timeframe.
For discussion on blocking issues that require the use of the Libuv transport, see the GitHub issue at dotnet/aspnetcore#23409.
5.0 Preview 8
The Libuv APIs aren't marked as obsolete.
The Libuv APIs are marked as obsolete.
Reason for change
Socket-based transport is the default. There aren't any compelling reasons to continue using the Libuv transport.
Discontinue use of the Libuv package and extension methods.