Skip to content

desmati/StoneKit

Repository files navigation

License

StoneKit - DotNet 8 Toolset

StoneKit is a comprehensive dotnet toolset consisting of various libraries and utilities to enhance and simplify common tasks in .NET development with over than 11k package download (20240310). Below are the key components of StoneKit:

1. Transverse - Quick Tiny Object Mapper

Installation

PM> Install-Package StoneKit.TransverseMapper

Usage and More Details

A tiny and quick object mapper for .Net v8.0. Inspired by AutoMapper and TinyMapper, Transverse aims to be the tiniest and fastest mapping library in dotnet.

Right now, it performs faster than AutoMapper, and improvements are made constantly.

Method Mean Error StdDev Median
CollectionMapping_AutoMapper 2.061 µs 0.0405 µs 0.0433 µs 2.055 µs
CollectionMapping_Transverse 1.802 µs 0.0649 µs 0.1872 µs 1.722 µs
CollectionMapping_Handwritten 1.474 µs 0.0379 µs 0.1075 µs 1.459 µs

2. StoneKit Advanced Reflection Tools

This comprehensive library provides advanced tools for interacting with IL and leveraging reflection as part of the StoneKit toolset.

Installation

PM> Install-Package StoneKit.Core.Reflection

3. StoneKit Common Utilities and Extension methods

Handy extension methods optimized for dotnet 8.

Installation

PM> Install-Package StoneKit.Core.Common

Usage and More Details

4. Maybe Monad for C#

Installation

PM> Install-Package StoneKit.Core.Strcuts.Maybe

Usage and More Details

The Maybe monad is a generic struct designed to represent optional values in C# following the Option Monad design pattern. It allows you to work with values that might be absent, helping to write more expressive and concise code.

This library includes extension methods for additional operations and functionalities, making it unique by keeping the struct size as small as possible. It has small memory footprints and performs much faster than other available implementations.

For a comprehensive understanding of the Maybe Monad, you can refer to the Pluralsight tech blog and Wikipedia on Monad (functional programming).

5. TypePair Struct

Installation

PM> Install-Package StoneKit.Core.Structs.TypePair

Usage and More Details

This TypePair struct represents a pair of types, commonly used for object mapping and type conversion.

6. StoneKit Core Structs

DateRange Struct

Installation

PM> Install-Package StoneKit.Core.Structs.DateRange

Usage and More Details

Represents a range of dates, allowing checks for inclusion of a date within the range. This lightweight struct provides various functionalities such as checking for inclusion, calculating duration, checking for overlaps, and more. It is a versatile tool for managing date ranges efficiently in your applications.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published