We've just released NSubstitute 4.1.0. The main changes in this release are a whole host of performance improvements thanks to Alex Povar (@zvirja).
Alex has also fixed some bugs that affected edge cases like formatting nested generic classes, event handlers generated by non-ECMA compliant compilers, and reporting NSubstitute config problems from async code. Thanks to @tpodolak, @a.jaeger, and @SvetlanaNesterova for raising issues with excellent minimal error reproductions to help us to track these down.
We've also added quite a few changes to the documentation/website, with PRs thanks to Julian Verdurmen (@304NotModified) and Michael Freidgeim (@MNF), and from suggestions sent in from Maxence Delannoy (@mdelanno) and Robert Bissonnette (@robertbissonnette).
If you haven't already done so, please make sure you add the NSubstitute.Analyzers package wherever you reference NSubstitute. @tpodolak has been hard at work on the diagnostics reported by this package, and I consider it essential for getting the most out of NSubstitute:
Breaking changes: There should be no breaking changes with this release.