/Goodies

Useful stuff missing from .NET for example duck typing, CSP channels, caching, money, typed ids...

Primary LanguageC#Apache License 2.0Apache-2.0

Build status Nuget

BusterWood.Goodies

So much useful & free stuff for .NET, built as a library for .NET Standard 2.0.

Selected highlights

  • BusterWood.Batching namespace contains classes for batching together asynchronous method calls for efficiency.
  • BusterWood.Caching namespace contains time and space effecient Cache<,> and ReadThroughCache<,>.
  • 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 both IList<> and ISet<>. Additionally HashLookup<,> and CircularQueue<> 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 contains Log static class for structured logging to Console.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 via ILGenerator.
  • BusterWood.Restarting namespace contains RestartMonitoring 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