-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Obsoleting Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv and Libuv packages
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 discussion issue at dotnet/aspnetcore#23409.
Version introduced
ASP.NET Core 5.0 Preview 8
Old behavior
These APIs were not Obsolete.
New behavior
They are now Obsolete.
Reason for change
The socket transport is now the default, and we don't know of good reasons to continue to use the Libuv transport.
Recommended action
Remove the use of the Libuv package and extension methods.
Category
ASP.NET
Affected APIs
WebHostBuilderLibuvExtensionsWebHostBuilderLibuvExtensions.UseLibuv()Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptionsMicrosoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.ThreadCountMicrosoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.NoDelayMicrosoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.MaxWriteBufferSizeMicrosoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.MaxReadBufferSizeMicrosoft.AspNetCore.Server.Kestrel.Transport.Libuv.LibuvTransportOptions.Backlog
Issue metadata
- Issue type: breaking-change