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.
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 aRabbitMQ.Client
package that is dependant on theRabbitMQ.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.