So much useful & free stuff for .NET, built as a library for .NET Standard 2.0.
- BusterWood.Batching namespace contains classes for batching together asynchronous method calls for efficiency.
- BusterWood.Caching namespace contains time and space effecient
Cache<,>andReadThroughCache<,>. - BusterWood.Channels namespace contains CSP-like communication between (logical) asynchronous threads, including buffered and multicast channels.
- BusterWood.Collections namespace contains the time and space effecient
UniqueList<>which implements bothIList<>andISet<>. AdditionallyHashLookup<,>andCircularQueue<>classes are provided. - BusterWood.Ducks namespace contains run-time duck typing.
- BusterWood.Equality namespace contains run-time creation of equality comparers using property names.
- BusterWood.Goodies namespace contains structs to ensure you don't mix up your customer and order identifiers, and extension methods for arrays, enums, TimeSpans and strings.
- BusterWood.Linq namespace contains 20% faster LINQ via batching, additional LINQ methods and asynchronous enumerables.
BusterWood.Loggingnamespace containsLogstatic class for structured logging toConsole.Error(StdErr).- BusterWood.Mapping namespace contains extension methods for copying objects with rules for name and type conversion.
- BusterWood.Monies namespace contains
Moneystruct to ensure that you don't add accidentally add GBP and USD together. BusterWood.Reflect.Emitnamespace contains extension methods for emiting IL viaILGenerator.BusterWood.Restartingnamespace containsRestartMonitoringthat monitor failures in asychrous processes and restarts them on failure (with delay).- BusterWood.Testing namespace contains a simple testing library inspired by Go's testing package