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.Logging
namespace containsLog
static 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
Money
struct to ensure that you don't add accidentally add GBP and USD together. BusterWood.Reflect.Emit
namespace contains extension methods for emiting IL viaILGenerator
.BusterWood.Restarting
namespace containsRestartMonitoring
that 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