rabbitmq / rabbitmq-dotnet-client

RabbitMQ .NET client for .NET Standard 2.0+ and .NET 4.6.2+
https://www.rabbitmq.com/dotnet.html
Other
2.05k stars 575 forks source link

Move Interfaces in Separate Package #1436

Closed devinlyons closed 7 months ago

devinlyons commented 7 months ago

Is your feature request related to a problem? Please describe.

It's nice that you hide everything behind interfaces like IConnection and others. However, including them in the main package ties them to their implementation. When the client library is used, you have to reference the interfaces and their implementation in order to write code against the interfaces.

Describe the solution you'd like

Follow a pattern similar to Microsoft. Release a RabbitMQ.Client.Abstractions package with the interfaces. Then release a RabbitMQ.Client package that is dependant on the RabbitMQ.Client.Abstractions package.

Describe alternatives you've considered

No response

Additional context

This would be the perfect time to do this as you prop for the 7.0 release of your library.