Split WireMock into multiple nuget packages depending on features #577

Closed
opened 2025-12-29 08:30:31 +01:00 by adam · 10 comments
Owner

Originally created by @asidorowicz on GitHub (Feb 26, 2024).

Originally assigned to: @StefH on GitHub.

Is your feature request related to a problem? Please describe.
WireMock is currently a single monolithic dependency that pulls with it a very large amount of transitive dependencies, regardless of whether the features are used or not. This can be seen as a minor inconvenience, but enough for our team to have decided to use a different testing tool.

Describe the solution you'd like
Split WireMock into separate dependencies depending on desired features, especially if the features require large transitive dependencies (eg: Graphql)

Describe alternatives you've considered
We have tried to exclude non-used transitive dependencies, but it is a clunky solution.

Originally created by @asidorowicz on GitHub (Feb 26, 2024). Originally assigned to: @StefH on GitHub. **Is your feature request related to a problem? Please describe.** WireMock is currently a single monolithic dependency that pulls with it a very large amount of transitive dependencies, regardless of whether the features are used or not. This can be seen as a minor inconvenience, but enough for our team to have decided to use a different testing tool. **Describe the solution you'd like** Split WireMock into separate dependencies depending on desired features, especially if the features require large transitive dependencies (eg: Graphql) **Describe alternatives you've considered** We have tried to exclude non-used transitive dependencies, but it is a clunky solution.
adam added the feature label 2025-12-29 08:30:31 +01:00
adam closed this issue 2025-12-29 08:30:31 +01:00
Author
Owner

@StefH commented on GitHub (Feb 26, 2024):

@asidorowicz
Good point. I'll think on this...

@StefH commented on GitHub (Feb 26, 2024): @asidorowicz Good point. I'll think on this...
Author
Owner

@StefH commented on GitHub (Feb 26, 2024):

Work in progress... : https://github.com/WireMock-Net/WireMock.Net/pull/1072

@StefH commented on GitHub (Feb 26, 2024): Work in progress... : https://github.com/WireMock-Net/WireMock.Net/pull/1072
Author
Owner

@StefH commented on GitHub (Feb 26, 2024):

@asidorowicz
If you have time, you can test preview version 1.5.48-ci-18384 which has separate NuGet for GraphQL, ProtoBuf and MimeKitLite.

https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions

@StefH commented on GitHub (Feb 26, 2024): @asidorowicz If you have time, you can test preview version `1.5.48-ci-18384` which has separate NuGet for GraphQL, ProtoBuf and MimeKitLite. https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions
Author
Owner

@asidorowicz commented on GitHub (Mar 1, 2024):

@StefH
Thank you for your work! I didn't expect such a quick response :)
It is much better, though there are still many dependencies that I don't know whether they are part of the core functionality or could be add-ons.
Either way, I believe it is an awesome step into a modular approach!

@asidorowicz commented on GitHub (Mar 1, 2024): @StefH Thank you for your work! I didn't expect such a quick response :) It is much better, though there are still many dependencies that I don't know whether they are part of the core functionality or could be add-ons. Either way, I believe it is an awesome step into a modular approach!
Author
Owner

@StefH commented on GitHub (Mar 2, 2024):

@asidorowicz
I'll check if more packages can be extracted, however after some thinking, I want to take a slightly different approach.

  • I want to keep the WireMock.Net NuGet the same, to avoid backwards compatibility issues.
  • I'll create a new NuGet WireMock.Net.Minimal which excludes these extra packages.
@StefH commented on GitHub (Mar 2, 2024): @asidorowicz I'll check if more packages can be extracted, however after some thinking, I want to take a slightly different approach. - I want to keep the WireMock.Net NuGet the same, to avoid backwards compatibility issues. - I'll create a new NuGet `WireMock.Net.Minimal` which excludes these extra packages.
Author
Owner

@asidorowicz commented on GitHub (Jan 16, 2025):

Thank you for all your hard work and contributions to this project! I was wondering if the split is still something you're considering or if it is on hold for the time being. I much prefer this library to alternatives, but the dependencies are causing issues

@asidorowicz commented on GitHub (Jan 16, 2025): Thank you for all your hard work and contributions to this project! I was wondering if the split is still something you're considering or if it is on hold for the time being. I much prefer this library to alternatives, but the dependencies are causing issues
Author
Owner

@StefH commented on GitHub (Jan 16, 2025):

Yes, it's still planned, however I dont have a time table.

@StefH commented on GitHub (Jan 16, 2025): Yes, it's still planned, however I dont have a time table.
Author
Owner

@StefH commented on GitHub (May 24, 2025):

https://github.com/wiremock/WireMock.Net/pull/1300

@StefH commented on GitHub (May 24, 2025): https://github.com/wiremock/WireMock.Net/pull/1300
Author
Owner

@StefH commented on GitHub (May 24, 2025):

@asidorowicz
First part of the split is done, these new packages are in version 1.8.8

  • WireMock.Net.Minimal,
  • WireMock.Net.Shared
  • WireMock.Net.MimePart
@StefH commented on GitHub (May 24, 2025): @asidorowicz First part of the split is done, these new packages are in version 1.8.8 - WireMock.Net.Minimal, - WireMock.Net.Shared - WireMock.Net.MimePart
Author
Owner

@StefH commented on GitHub (Aug 27, 2025):

It's done in version 1.10.x

@StefH commented on GitHub (Aug 27, 2025): It's done in version 1.10.x
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/WireMock.Net#577