An open API service indexing awesome lists of open source software.

csharp-source-generators

A list of C# Source Generators (not necessarily awesome) and associated resources: articles, talks, demos.
https://github.com/amis92/csharp-source-generators

Last synced: 5 days ago
JSON representation

  • Source Generators

    • Enums

      • EnumFastToStringDotNet - ![stars](https://img.shields.io/github/stars/Spinnernicholas/EnumFastToStringDotNet?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Spinnernicholas/EnumFastToStringDotNet?style=flat-square&cacheSeconds=86400) - Automatically generates enum extension methods that implement a switch expression based ToString method.
      • EnumUtilitiesGenerator - ![stars](https://img.shields.io/github/stars/leoformaggi/enum-utilities-generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/leoformaggi/enum-utilities-generator?style=flat-square&cacheSeconds=86400) - A source generator to generate compile-time mapping of enums and description attributes.
      • FastEnumGenerator - ![stars](https://img.shields.io/github/stars/musictopia2/FastEnumGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/musictopia2/FastEnumGenerator?style=flat-square&cacheSeconds=86400) An enum like generator where you create a partial class with private enum and it will generate an enum like record struct even including returning the words and a list.
      • JOS.Enumeration - ![stars](https://img.shields.io/github/stars/joseftw/jos.enumeration?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/joseftw/jos.enumeration?style=flat-square&cacheSeconds=86400) Enumeration class powered by source generation
      • NetEscapades.EnumGenerators - ![stars](https://img.shields.io/github/stars/andrewlock/NetEscapades.EnumGenerators?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/andrewlock/NetEscapades.EnumGenerators?style=flat-square&cacheSeconds=86400) A source generator for generating fast "reflection" methods for enums
      • RapidEnum - ![stars](https://img.shields.io/github/stars/hanachiru/RapidEnum?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/hanachiru/RapidEnum?style=flat-square&cacheSeconds=86400) - RapidEnum is a Source Generator that provides fast-running enum utilities for C#/.NET. It is faster than the .NET API and achieves zero allocation for all methods.
      • EnumUtilities - ![stars](https://img.shields.io/github/stars/skarllot/EnumUtilities?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/skarllot/EnumUtilities?style=flat-square&cacheSeconds=86400) - A source generator that creates extension methods and utilities for enums with flags support, atomic operations (InterlockedAdd, InterlockedOr, etc.), and JSON converter generation.
    • Functional Programming

      • Generator.Equals - ![stars](https://img.shields.io/github/stars/diegofrata/Generator.Equals?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/diegofrata/Generator.Equals?style=flat-square&cacheSeconds=86400) generates equality and hashing for classes and records, supports a number of strategies for comparing collections and properties.
      • RSCG_UtilityTypes - ![stars](https://img.shields.io/github/stars/ignatandrei/RSCG_UtilityTypes?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ignatandrei/RSCG_UtilityTypes?style=flat-square&cacheSeconds=86400) Add Omit and Pick attributes to generate classes from existing class, like in TypeScript.
      • Strongly - square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/lucasteles/Strongly?style=flat-square&cacheSeconds=86400) - Easily generate serializable domain value types
      • ValueObjectGenerator - ![stars](https://img.shields.io/github/stars/RyotaMurohoshi/ValueObjectGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/RyotaMurohoshi/ValueObjectGenerator?style=flat-square&cacheSeconds=86400) C# source generator is for ValueObjects (ie.Wrapper classes).
      • Vogen - ![stars](https://img.shields.io/github/stars/SteveDunn/Vogen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/SteveDunn/Vogen?style=flat-square&cacheSeconds=86400) C# source generator and code analyser that generates strongly typed domain identities.
      • WrapperValueObject - ![stars](https://img.shields.io/github/stars/martinothamar/WrapperValueObject?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/martinothamar/WrapperValueObject?style=flat-square&cacheSeconds=86400) - for creating simple value objects wrapping primitive types.
      • Immutype - ![stars](https://img.shields.io/github/stars/DevTeam/Immutype?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/DevTeam/Immutype?style=flat-square&cacheSeconds=86400) - generates extension methods to support immutability.
      • Visor - ![stars](https://img.shields.io/github/stars/leviysoft/Visor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/leviysoft/Visor?style=flat-square&cacheSeconds=86400) C# optics library with incremental code generator (maintained fork of [suspended Tinkoff project](https://github.com/Tinkoff/Visor))
      • AnyOf - ![stars](https://img.shields.io/github/stars/StefH/AnyOf?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/StefH/AnyOf?style=flat-square&cacheSeconds=86400) The Source Generator creates a `AnyOf<First, TSecond, ...>` type to handle multiple defined types as input parameters for methods.
      • dotVariant - ![stars](https://img.shields.io/github/stars/mknejp/dotvariant?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/mknejp/dotvariant?style=flat-square&cacheSeconds=86400) A type-safe and space-efficient sum type for C# (comparable to discriminated unions in C or C++).
      • Dunet - ![stars](https://img.shields.io/github/stars/domn1995/dunet?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/domn1995/dunet?style=flat-square&cacheSeconds=604800) A simple source generator for [discriminated unions](https://en.wikipedia.org/wiki/Tagged_union) in C#.
      • Funcky Discriminated Unions - ![stars](https://img.shields.io/github/stars/polyadic/funcky-discriminated-union?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/polyadic/funcky-discriminated-union?style=flat-square&cacheSeconds=86400) A source generator that generates `Match` methods for all your discriminated unions needs. ✨ Can be used with or without the functional programming library Funcky.
      • N.SourceGenerators.UnionTypes - ![stars](https://img.shields.io/github/stars/Ne4to/N.SourceGenerators.UnionTypes?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Ne4to/N.SourceGenerators.UnionTypes?style=flat-square&cacheSeconds=86400) Discriminated union type source generator.
      • Unions - ![stars](https://img.shields.io/github/stars/PaulBraetz/Unions?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/PaulBraetz/Unions?style=flat-square&cacheSeconds=86400) for generating meaningful, efficient union types.
      • StronglyTypedId - ![stars](https://img.shields.io/github/stars/andrewlock/StronglyTypedId?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/andrewlock/StronglyTypedId?style=flat-square&cacheSeconds=86400) A Rosyln-powered generator for strongly-typed IDs
      • ComparisonOperatorsGenerator - ![stars](https://img.shields.io/github/stars/sonnemaf/ReflectionIT.ComparisonOperatorsGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/sonnemaf/ReflectionIT.ComparisonOperatorsGenerator?style=flat-square&cacheSeconds=86400) A Source Generator package that generates the `>`, `>=`, `<`, `<=` operators for a `partial` type (`class`, `struct` or `record`) which implements `IComparable<T>`.
      • MatchGenerator - ![stars](https://img.shields.io/github/stars/ycanardeau/MatchGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ycanardeau/MatchGenerator?style=flat-square&cacheSeconds=86400) Bring exhaustive pattern matching to C# enums and unions with zero boilerplate.
    • Graphics / Drawing

      • ComputeSharp - ![stars](https://img.shields.io/github/stars/Sergio0694/ComputeSharp?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Sergio0694/ComputeSharp?style=flat-square&cacheSeconds=86400) A .NET library to run C# code in parallel on the GPU through DX12 and dynamically generated HLSL compute shaders, which are transpiled from C# and precompiled at build-time using source generators.
      • Svg to C# Source Generators - ![stars](https://img.shields.io/github/stars/wieslawsoltes/Svg.Skia?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/wieslawsoltes/Svg.Skia?style=flat-square&cacheSeconds=86400) SVGC compiles SVG drawing markup to C# using SkiaSharp as rendering engine. SVGC can be also used as codegen for upcoming C# 9 Source Generator feature.
    • Localization

      • kli.Localize - ![stars](https://img.shields.io/github/stars/kl1mm/localize?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/kl1mm/localize?style=flat-square&cacheSeconds=86400) - localize strings from json files via source code generation
      • MrMeeseeks.ResXToViewModelGenerator - ![stars](https://img.shields.io/github/stars/Yeah69/MrMeeseeks.ResXToViewModelGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Yeah69/MrMeeseeks.ResXToViewModelGenerator?style=flat-square&cacheSeconds=86400) Takes ResX files and generates localization ViewModels for a more convenient usage of localization in MVVM projects.
      • ResXGenerator - ![stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ycanardeau/ResXGenerator?style=flat-square&cacheSeconds=86400) Generates strongly-typed resource classes for looking up localized strings.
    • Mappers

      • AutoDto - ![stars](https://img.shields.io/github/stars/Ohorodnikov/AutoDto?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Ohorodnikov/AutoDto?style=flat-square&cacheSeconds=86400) - A source generator that generates DTO models from BL to avoid same BL and DTO models
      • Flattening - ![stars](https://img.shields.io/github/stars/Kros-sk/Kros.Generators.Flattening?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Kros-sk/Kros.Generators.Flattening?style=flat-square&cacheSeconds=86400) - C# source generator for generating flattened classes from complex domain classes.
      • GraphQL.Tools - ![stars](https://img.shields.io/github/stars/MoienTajik/GraphQL.Tools?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/MoienTajik/GraphQL.Tools?style=flat-square&cacheSeconds=86400) - A GraphQL to C# compiler (code-generator) which turns your GraphQL schema into a set of C# classes, interfaces, and enums.
      • Mapperly - ![stars](https://img.shields.io/github/stars/riok/mapperly?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/riok/mapperly?style=flat-square&cacheSeconds=86400) - A source generator for generating object mappings. Inspired by MapStruct.
      • MappingCloningExtensions - ![stars](https://img.shields.io/github/stars/musictopia2/MappingCloningExtensions?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/musictopia2/MappingCloningExtensions?style=flat-square&cacheSeconds=86400) Generates extensions of objects for mapping and cloning using either attributes or fluent style. Also, supports deep copying and specfiying whether it can do a deep copy and the possibility of doing so safely.
      • Mapster - ![stars](https://img.shields.io/github/stars/MapsterMapper/Mapster?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/MapsterMapper/Mapster?style=flat-square&cacheSeconds=86400) - A fast, fun and performant object to object Mapper. Has better performance and is more memorry efficient than Automapper. Besides code generation, supports also Fluent API.
      • MapTo - ![stars](https://img.shields.io/github/stars/mrtaikandi/mapto?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/mrtaikandi/mapto?style=flat-square&cacheSeconds=86400) - A convention based object to object mapper similar to Automapper.
      • NextGenMapper - ![stars](https://img.shields.io/github/stars/DedAnton/NextGenMapper?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/DedAnton/NextGenMapper?style=flat-square&cacheSeconds=86400) Easy-to-use mapper without configuration.
      • SourceMapper - ![stars](http://img.shields.io/github/stars/alekshura/SourceMapper?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/alekshura/SourceMapper?style=flat-square&cacheSeconds=86400) - generates Mappers code based on attributes used on interfaces or abstract classes. It is inspired by Java [MapStruct](https://mapstruct.org/)
      • Facet - ![stars](https://img.shields.io/github/stars/Tim-Maes/Facet?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Tim-Maes/Facet?style=flat-square&cacheSeconds=86400) A source generator that instantly scaffolds DTOs, ViewModels and typed LINQ projections.
      • Facet - ![stars](https://img.shields.io/github/stars/Tim-Maes/Facet?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Tim-Maes/Facet?style=flat-square&cacheSeconds=86400) A source generator that instantly scaffolds DTOs, ViewModels and typed LINQ projections.
      • SourceMapper - ![stars](https://img.shields.io/github/stars/paiden/SourceMapper?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/paiden/SourceMapper?style=flat-square&cacheSeconds=86400) A source generator that creates extension methods for cloning and mapping.
    • Metaprogramming

      • GenerateHelperLibraries - ![stars](https://img.shields.io/github/stars/musictopia2/GenerateHelperLibraries?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/musictopia2/GenerateHelperLibraries?style=flat-square&cacheSeconds=86400) A source generator where you can send any code to the client without having to do as a string. Helper for custom classes a client has to override in order to have additional features for source generators. Intended to be used from another source generator.
      • Gobie - ![stars](https://img.shields.io/github/stars/GobieGenerator/Gobie?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/GobieGenerator/Gobie?style=flat-square&cacheSeconds=86400) - Allows developers define and use custom source generation without writing any generator code themselves or learning the Roslyn APIs. Instead, devs define the generator they want, in C#, and can then use that generator throughout their project.
      • Matryoshki - ![stars](https://img.shields.io/github/stars/krasin-ga/matryoshki?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/krasin-ga/matryoshki?style=flat-square&cacheSeconds=86400) Metaprogramming framework based on C# source generators. It allows you to define behaviours with adornments and generate decorators for arbitrary types.
      • SourceGeneratorQuery - ![stars](https://img.shields.io/github/stars/roeibajayo/SourceGeneratorQuery?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/roeibajayo/SourceGeneratorQuery?style=flat-square&cacheSeconds=86400) - C# SourceGenerator helper which helps you query your files, and adds LINQ support.
      • comptime - ![stars](https://img.shields.io/github/stars/sebastienros/comptime?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/sebastienros/comptime?style=flat-square&cacheSeconds=86400) - Comptime brings meta-programming capabilities to C#, enabling compile-time code generation and evaluation.
    • Other

      • AutoFilterer.Generators - ![stars](https://img.shields.io/github/stars/enisn/AutoFilterer?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/enisn/AutoFilterer?style=flat-square&cacheSeconds=86400) AutoFilterer.Generators aims to generate filter DTOs from entities automatically via using dotnet source generators.
      • AutoConstructor - ![stars](https://img.shields.io/github/stars/k94ll13nn3/AutoConstructor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/k94ll13nn3/AutoConstructor?style=flat-square&cacheSeconds=86400) C# source generator that generates a constructor from readonly fields/properties in a class or struct.
      • net_automatic_interface - ![stars](https://img.shields.io/github/stars/codecentric/net_automatic_interface?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/codecentric/net_automatic_interface?style=flat-square&cacheSeconds=86400) .Net Core Source Generator for Automatic Interfaces.
      • AutoInvoke - ![stars](https://img.shields.io/github/stars/LokiMidgard/AutoInvoke.Generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/LokiMidgard/AutoInvoke.Generator?style=flat-square&cacheSeconds=86400) A generator that generates a method that invokes a specified generic method, for every Type in your project that satisfies a defined constraint.
      • BigMachines - ![stars](https://img.shields.io/github/stars/archi-Doc/BigMachines?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/archi-Doc/BigMachines?style=flat-square&cacheSeconds=86400) BigMachines is State Machine library for .NET.
      • BitsKit - A C# library for efficient bit-level reading and writing also adding bit field support
      • CacheSourceGenerator - ![stars](https://img.shields.io/github/stars/jeppevammenkristensen/cachesourcegenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/jeppevammenkristensen/cachesourcegenerator?style=flat-square&cacheSeconds=86400) Generates an IMemoryCache wrapper around a method call.
      • Cloneable - ![stars](https://img.shields.io/github/stars/mostmand/Cloneable?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/mostmand/Cloneable?style=flat-square&cacheSeconds=86400) auto-generate Clone method.
      • Durian - ![stars](https://img.shields.io/github/stars/piotrstenke/Durian?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/piotrstenke/Durian?style=flat-square&cacheSeconds=86400) Extends the default capabilities of C# by mimicking features from other languages.
      • Fairy - ![stars](https://img.shields.io/github/stars/hermanussen/Fairy?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/hermanussen/Fairy?style=flat-square&cacheSeconds=86400) generates C# code based on Sitecore Content Serialization (SCS) `.yml` files.
      • FastGenericNew - ![stars](https://img.shields.io/github/stars/Nyrest/FastGenericNew?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Nyrest/FastGenericNew?style=flat-square&cacheSeconds=86400) The ultimate fast alternative to `Activator.CreateInstance<T>` / `new T()`. Built on SourceGenerator V2 (Incremental Generator).
      • GitBuildInfo.SourceGenerator - ![stars](https://img.shields.io/github/stars/Elskom/GitBuildInfo.SourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Elskom/GitBuildInfo.SourceGenerator?style=flat-square&cacheSeconds=86400) - for dumping the git information (commit hash, branch, the head description) into assembly level metadata attributes.
      • Hangfire.RecurringJob - ![stars](https://img.shields.io/github/stars/IeuanWalker/Hangfire.RecurringJob?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/IeuanWalker/Hangfire.RecurringJob?style=flat-square&cacheSeconds=86400) - Automatically generates the recurring job registration code.
      • IDisposableGenerator - ![stars](https://img.shields.io/github/stars/Elskom/IDisposableGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Elskom/IDisposableGenerator?style=flat-square&cacheSeconds=86400) - a Source Generator for Generating the Dispose functions in Disposables. All you have to do is mark them with attributes and it will work from there.
      • Lazysh - ![stars](https://img.shields.io/github/stars/B1Z0N/LazyshGen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/B1Z0N/LazyshGen?style=flat-square&cacheSeconds=86400) Lazy implementation of any interface.
      • LinqGen - ![stars](https://img.shields.io/github/stars/cathei/LinqGen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/cathei/LinqGen?style=flat-square&cacheSeconds=86400) Alloc-free and fast replacement for Linq, with code generation.
      • LoggingDecoratorGenerator - ![stars](https://img.shields.io/github/stars/DavidFineboym/LoggingDecoratorGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/DavidFineboym/LoggingDecoratorGenerator?style=flat-square&cacheSeconds=86400) Generates logger decorator class for an interface. Uses Microsoft.Extensions.Logging.ILogger to log and requires it in decorator class constructor.
      • MemberAccessGenerator - ![stars](https://img.shields.io/github/stars/ufcpp/MemberAccessGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ufcpp/MemberAccessGenerator?style=flat-square&cacheSeconds=86400) generates `GetMember(int)` and/or `GetMember(string)` methods that return property value for a given property name or index (e.g. in positional records).
      • MrMeeseeks.StaticDelegateGenerator - ![stars](https://img.shields.io/github/stars/Yeah69/MrMeeseeks.StaticDelegateGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Yeah69/MrMeeseeks.StaticDelegateGenerator?style=flat-square&cacheSeconds=86400) Makes static classes and members injectable as dependency by generating delegating interfaces and their implementing classes.
      • PolySharp - ![stars](https://img.shields.io/github/stars/Sergio0694/PolySharp?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Sergio0694/PolySharp?style=flat-square&cacheSeconds=86400) Provides generated, source-only polyfills for C# language features, to easily use all runtime-agnostic features downlevel.
      • PrimaryConstructor - ![stars](https://img.shields.io/github/stars/chaowlert/PrimaryConstructor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/chaowlert/PrimaryConstructor?style=flat-square&cacheSeconds=86400) Generate primary constructor from readonly fields.
      • PrimitiveStaticDataGenerator - ![stars](https://img.shields.io/github/stars/iiweis/PrimitiveStaticDataGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/iiweis/PrimitiveStaticDataGenerator?style=flat-square&cacheSeconds=86400) for creating methods that return optimized `ReadOnlySpan<T>` static data from primitive values.
      • PrintMembersGenerator - ![stars](https://img.shields.io/github/stars/Youssef1313/PrintMembersGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Youssef1313/PrintMembersGenerator?style=flat-square&cacheSeconds=86400) helps re-defining C# record's PrintMembers method to force include/exclude certain members.
      • QuickConstructor - ![stars](https://img.shields.io/github/stars/flavien/QuickConstructor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/flavien/QuickConstructor?style=flat-square&cacheSeconds=86400) A reliable and feature-rich source generator that can automatically emit a constructor from the fields and properties of a class. It can also generate null checks based on nullable reference types annotations.
      • SmartAnnotations - ![stars](https://img.shields.io/github/stars/fiseni/SmartAnnotations?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/fiseni/SmartAnnotations?style=flat-square&cacheSeconds=86400) A library that uses source generators to automatically generate data annotations for your models. It provides a strongly-typed mechanism (fluent like API) to define your annotation rules.
      • StringLiteralGenerator - ![stars](https://img.shields.io/github/stars/ufcpp/StringLiteralGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ufcpp/StringLiteralGenerator?style=flat-square&cacheSeconds=86400) for optimizing UTF-8 binaries.
      • SyncMethodGenerator - ![stars](https://img.shields.io/github/stars/zompinc/sync-method-generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/zompinc/sync-method-generator?style=flat-square&cacheSeconds=86400) - Generates a synchronized method from your async code.
      • ToString - ![stars](https://img.shields.io/github/stars/Burgyn/MMLib.ToString?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Burgyn/MMLib.ToString?style=flat-square&cacheSeconds=86400) - C# source generator for implementing `ToString` override like `record` type.
      • TupleOverloadGenerator - ![stars](https://img.shields.io/github/stars/ProphetLamb/TupleOverloadGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ProphetLamb/TupleOverloadGenerator?style=flat-square&cacheSeconds=86400) - Overload `params` array parameter with tuples avoiding heap allocations.
      • ValueLink - ![stars](https://img.shields.io/github/stars/archi-Doc/ValueLink?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/archi-Doc/ValueLink?style=flat-square&cacheSeconds=86400) A C# Library for creating and managing multiple links between objects.
      • BuildInformationGenerator - ![stars](https://img.shields.io/github/stars/pekspro/BuildInformationGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/pekspro/BuildInformationGenerator?style=flat-square&cacheSeconds=86400) Adds build information, like build time, commit it and branch, as simple constants.
      • Credfeto.Version.Information.Generator - ![stars](https://img.shields.io/github/stars/credfeto/credfeto-version-constants-generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/credfeto/credfeto-version-constants-generator?style=flat-square&cacheSeconds=86400) Minimal source generator for embedding build information as compile time constants. Constants added to `VersionInformation` class in each assembly for `Version`, `Product`, `Company` and `Copyright`.
      • CsCodeGenerator - ![stars](https://img.shields.io/github/stars/borisdj/CsCodeGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/borisdj/CsCodeGenerator?style=flat-square&cacheSeconds=86400) Easy C# class and code generation, POCO object and Methods creation.
      • Dolly - ![stars](https://img.shields.io/github/stars/AnderssonPeter/Dolly?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/AnderssonPeter/Dolly?style=flat-square&cacheSeconds=86400) auto-generate Clone & DeepClone method.
      • AutoLoggerMessage - ![stars](https://img.shields.io/github/stars/stbychkov/AutoLoggerMessage?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/stbychkov/AutoLoggerMessage?style=flat-square&cacheSeconds=86400) Automatically migrates your logging calls to the LoggerMessage (high-performance logging) version
      • AssemblyVersionInfo - ![stars](https://img.shields.io/github/stars/BlackWhiteYoshi/AssemblyVersionInfo?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/BlackWhiteYoshi/AssemblyVersionInfo?style=flat-square&cacheSeconds=86400) AssemblyVersionInfo is a very simple source generator that generates constant strings of your assembly name and version. The intended usage is for the System.CodeDom.Compiler.GeneratedCodeAttribute.
      • AutoInterface - ![stars](https://img.shields.io/github/stars/BlackWhiteYoshi/AutoInterface?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/BlackWhiteYoshi/AutoInterface?style=flat-square&cacheSeconds=86400) AutoInterface is a source generator that generates an interface based on your class/struct. Basically, you write your class and get the corresponding interface for free.
      • DataAnnotationValuesExtractor - ![stars](https://img.shields.io/github/stars/pekspro/DataAnnotationValuesExtractor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/pekspro/DataAnnotationValuesExtractor?style=flat-square&cacheSeconds=86400) Extracts values from data annotation attributes, like maximum string length, and exposes them as strongly-typed constants.
      • Tenekon.MethodOverloads.SourceGenerator - ![stars](https://img.shields.io/github/stars/tenekon/Tenekon.MethodOverloads.SourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/tenekon/Tenekon.MethodOverloads.SourceGenerator?style=flat-square&cacheSeconds=86400) - A C# source generator that creates combinatorial extension method overloads by treating a selected parameter window as optional and emitting legal, unique subsequences.
      • DisposeGenerator - ![stars](https://img.shields.io/github/stars/sonnemaf/ReflectionIT.DisposeGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/sonnemaf/ReflectionIT.DisposeGenerator?style=flat-square&cacheSeconds=86400) - a Source Generator for Generating the Dispose functions in Disposables. All you have to do is mark them with attributes and it will work from there.
      • PropertyThrowGenerator - ![stars](https://img.shields.io/github/stars/sonnemaf/ReflectionIT.PropertyThrowGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/sonnemaf/ReflectionIT.PropertyThrowGenerator?style=flat-square&cacheSeconds=86400) - source generator that adds validation to partial properties annotated with `ThrowIf...` attributes. The generated setters call the appropriate `Argument...Exception.ThrowIf...` helper methods before assigning the value. Also supports MVVM `ObservableProperties`.
    • Patterns

      • Lombok.NET - ![stars](https://img.shields.io/github/stars/CollinAlpert/Lombok.NET?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/CollinAlpert/Lombok.NET?style=flat-square&cacheSeconds=86400) Generates boilerplate code and common code patterns. As the name suggests, it is the .NET version of Java's Lombok.
      • DumplingsDevs.Pipelines - ![stars](https://img.shields.io/github/stars/DumplingsDevs/Pipelines?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/DumplingsDevs/Pipelines?style=flat-square&cacheSeconds=604800) The most flexible mediation implementation in the .NET ecosystem with your own types.
      • Immediate.Handlers - ![stars](https://img.shields.io/github/stars/viceroypenguin/Immediate.Handlers?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/viceroypenguin/Immediate.Handlers?style=flat-square&cacheSeconds=86400) An implementation of the Mediator pattern in .NET using source generators, without using a central mediator instance.
      • Mediator - ![stars](https://img.shields.io/github/stars/martinothamar/Mediator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/martinothamar/Mediator?style=flat-square&cacheSeconds=86400) - a high performance implementation of Mediator pattern in .NET using source generators.
      • MediatR controllers generator - ![stars](https://img.shields.io/github/stars/Burgyn/MMLib.MediatR.Generators?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Burgyn/MMLib.MediatR.Generators?style=flat-square&cacheSeconds=86400) This generator generates controllers and their methods based on your [MediatR](https://github.com/jbogard/MediatR) requests.
      • Plastic - ![stars](https://img.shields.io/github/stars/sang-hyeon/Plastic?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/sang-hyeon/Plastic?style=flat-square&cacheSeconds=86400) This project provides encapsulation of things like Domain, Application Rules, Business Rules or Business Logic in Application.
      • Data Builder Generator - ![stars](https://img.shields.io/github/stars/dasMulli/data-builder-generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/dasMulli/data-builder-generator?style=flat-square&cacheSeconds=86400) Generate data builder patterns for your model classes.
      • FluentBuilder - ![stars](https://img.shields.io/github/stars/StefH/FluentBuilder?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/StefH/FluentBuilder?style=flat-square&cacheSeconds=86400) - A project which uses Source Generation to create a FluentBuilder for a specified model or DTO.
      • M31.FluentAPI - ![stars](https://img.shields.io/github/stars/m31coding/M31.FluentAPI?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/m31coding/M31.FluentAPI?style=flat-square&cacheSeconds=86400) - Generate fluent APIs for your C# classes with ease.
      • DudNet - ![stars](https://img.shields.io/github/stars/jwshyns/dudnet?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/jwshyns/dudnet?style=flat-square&cacheSeconds=604800) A C# source generator for implementing a proxy pattern.
      • MrMeeseeks.Visitor - ![stars](https://img.shields.io/github/stars/Yeah69/MrMeeseeks.Visitor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Yeah69/MrMeeseeks.Visitor?style=flat-square&cacheSeconds=86400) Generates the boilerplate code for applications of the Visitor pattern.
      • AutoInterface - ![stars](https://img.shields.io/github/stars/beakona/AutoInterface?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/beakona/AutoInterface?style=flat-square&cacheSeconds=86400) interface-to-member source generator.
      • ActorSrcGen - ![stars](https://img.shields.io/github/stars/aabs/ActorSrcGen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/aabs/ActorSrcGen?style=flat-square&cacheSeconds=86400) Generates boilerplate to turn simple C# classes into TPL Dataflow compatible pipelines with robust and performant asynchronous and concurrent code.
      • Minerals.AutoMixins - ![stars](https://img.shields.io/github/stars/SzymonHalucha/Minerals.AutoMixins?style=flat-square&cacheSeconds=86400) ![last commit](https://img.shields.io/github/last-commit/SzymonHalucha/Minerals.AutoMixins?style=flat-square&cacheSeconds=86400) Package for automatic mixin design pattern generation using an incremental source generator.
      • Minerals.AutoCQRS - ![stars](https://img.shields.io/github/stars/SzymonHalucha/Minerals.AutoCQRS?style=flat-square&cacheSeconds=86400) ![last commit](https://img.shields.io/github/last-commit/SzymonHalucha/Minerals.AutoCQRS?style=flat-square&cacheSeconds=86400) NuGet package that provides interfaces for implementing the CQRS pattern (Commands, Queries, and Pipelines) along with automatic dependency injection and no MediatR package overhead.
      • Immediate.Handlers - ![stars](https://img.shields.io/github/stars/immediateplatform/Immediate.Handlers?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/immediateplatform/Immediate.Handlers?style=flat-square&cacheSeconds=86400) An implementation of the Mediator pattern in .NET using source generators, without using a central mediator instance.
      • Minerals.AutoInterfaces - ![stars](https://img.shields.io/github/stars/SzymonHalucha/Minerals.AutoInterfaces?style=flat-square&cacheSeconds=86400) ![last commit](https://img.shields.io/github/last-commit/SzymonHalucha/Minerals.AutoInterfaces?style=flat-square&cacheSeconds=86400) Package for automatic interface generation using an incremental source generator.
      • SuperFluid - ![stars](https://img.shields.io/github/stars/hughesjs/SuperFluid?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/hughesjs/SuperFluid?style=flat-square&cacheSeconds=86400) Generates the interfaces to represent a fluent API with grammar
      • InlineComposition - ![stars](https://img.shields.io/github/stars/BlackWhiteYoshi/InlineComposition?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/BlackWhiteYoshi/InlineComposition?style=flat-square&cacheSeconds=86400) A source generator that merges the content of other classes into one class. A simple workaround for struct inheritance or multiple inheritance.
      • StepwiseBuilderGenerator - ![stars](https://img.shields.io/github/stars/Georgiy-Petrov/StepwiseBuilderGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Georgiy-Petrov/StepwiseBuilderGenerator?style=flat-square&cacheSeconds=86400) - Generate stepwise (fluent) builders effortlessly.
      • JinShil.MixinSourceGenerator - ![stars](https://img.shields.io/github/stars/JinShil/JinShil.MixinSourceGenerator?style=flat-square&cacheSeconds=86400) ![last commit](https://img.shields.io/github/last-commit/JinShil/JinShil.MixinSourceGenerator?style=flat-square&cacheSeconds=86400) A simple, but powerful source generator that implements the mixin design pattern by copying members—along with their attributes and XML documentation comments—verbatim from one or more source classes/structs into anaother, forming a composition of said classes/structs.
      • Foundatio Mediator - ![stars](https://img.shields.io/github/stars/FoundatioFx/Foundatio.Mediator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/FoundatioFx/Foundatio.Mediator?style=flat-square&cacheSeconds=86400) - Blazingly fast, convention-based C# mediator powered by source generators and interceptors.
      • Visitor.NET - ![stars](https://img.shields.io/github/stars/Stepami/visitor-net?style=flat-square) ![last commit](https://img.shields.io/github/last-commit/Stepami/visitor-net?style=flat-square) First-ever acyclic generic extensible typesafe implementation of Visitor pattern for .NET without any usage of dynamic cast. Implementation powered by Source Generators
      • avatar - ![stars](https://img.shields.io/github/stars/kzu/avatar?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/kzu/avatar?style=flat-square&cacheSeconds=86400) A modern compile-time generated interception/proxy library.
    • Serialization

      • AutoDeconstructable - ![stars](https://img.shields.io/github/stars/nemesissoft/Nemesis.TextParsers?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/nemesissoft/Nemesis.TextParsers?style=flat-square&cacheSeconds=86400) Generator for efficient and automatic flat text serializer/deserializer using [Deconstructable aspect](https://github.com/nemesissoft/Nemesis.TextParsers/blob/master/Specification.md#deconstructables) in [NTP](https://github.com/nemesissoft/Nemesis.TextParsers) library.
      • CSV-Parser-Generator - ![stars](https://img.shields.io/github/stars/LokiMidgard/CSV-Parser-Generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/LokiMidgard/CSV-Parser-Generator?style=flat-square&cacheSeconds=86400) A Parser for CSV with support for uncommon line separators (e.g. Unicode) and instantiation of read-only objects and working nullable handling.
      • ProtobufSourceGenerator - ![stars](https://img.shields.io/github/stars/ladeak/ProtobufSourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ladeak/ProtobufSourceGenerator?style=flat-square&cacheSeconds=86400) - A source generator that generates partial helper classes where member properties are attributed with ProtoMember attribute.
      • SpreadCheetah - ![stars](https://img.shields.io/github/stars/sveinungf/spreadcheetah?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/sveinungf/spreadcheetah?style=flat-square&cacheSeconds=86400) Create Excel files with a C# Source Generator for generating the rows.
      • StackXML - ![stars](https://img.shields.io/github/stars/ZingBallyhoo/StackXML?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ZingBallyhoo/StackXML?style=flat-square&cacheSeconds=86400) Stack based zero-allocation XML serializer and deserializer.
      • Tinyhand - ![stars](https://img.shields.io/github/stars/archi-Doc/Tinyhand?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/archi-Doc/Tinyhand?style=flat-square&cacheSeconds=86400) - Tiny and simple data format/serializer using a source generator.
      • GeneratedJsonConverters - ![stars](https://img.shields.io/github/stars/aviationexam/json-converter-source-generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/aviationexam/json-converter-source-generator?style=flat-square&cacheSeconds=86400) - generate json converters for polymorph contracts and string based enum serialization.
      • JsonByExampleGenerator - ![stars](https://img.shields.io/github/stars/hermanussen/JsonByExampleGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/hermanussen/JsonByExampleGenerator?style=flat-square&cacheSeconds=86400) - generate classes based on example json files in your project.
      • JsonDeserializeResourceSourceGenerator - ![stars](https://img.shields.io/github/stars/musictopia2/JsonDeserializeResourceSourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/musictopia2/JsonDeserializeResourceSourceGenerator?style=flat-square&cacheSeconds=86400) Instead of having to do embedded resource, can instead have json as additional file and it will produce a c# string and will deserialize to a type specified.
      • JsonPolymorphicGenerator - ![stars](https://img.shields.io/github/stars/surgicalcoder/JsonPolymorphicGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/surgicalcoder/JsonPolymorphicGenerator?style=flat-square&cacheSeconds=86400) - Source Code Generator for System.Text.Json JsonDerivedType attributes on polymorphic classes
      • JsonSerializerContextGenerator - ![stars](https://img.shields.io/github/stars/musictopia2/JsonSerializerContextGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/musictopia2/JsonSerializerContextGenerator?style=flat-square&cacheSeconds=86400) A source generator that produces nearly the same code as system.json.text but easier to use because you only have to put an attribute for a model class you want to produce for. Also, produces a method to register to make it easy to use that source generator when serializing/deserializing json.
      • JsonSrcGen - ![stars](https://img.shields.io/github/stars/trampster/JsonSrcGen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/trampster/JsonSrcGen?style=flat-square&cacheSeconds=86400) - compile time JSON serializer generation.
      • TeuJson - ![stars](https://img.shields.io/github/stars/Terria-K/TeuJson?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Terria-K/TeuJson?style=flat-square&cacheSeconds=86400) A Reflection-less and Lightweight Json Library using source generator.
      • GenPack - ![stars](https://img.shields.io/github/stars/dimohy/GenPack?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/dimohy/GenPack?style=flat-square&cacheSeconds=86400) is a library that uses the .NET source generator to automatically generate packets as classes once you define a schema for the packets. It's easy to use and the results are useful.
      • Csv-CSharp - ![stars](https://img.shields.io/github/stars/nuskey8/Csv-CSharp?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/nuskey8/Csv-CSharp?style=flat-square&cacheSeconds=86400) - Csv-CSharp is a highly performant CSV (TSV) parser for .NET and Unity. It is designed to parse UTF-8 binaries directly and leverage Source Generators to enable serialization/deserialization between CSV (TSV) and object arrays with zero (or very low) allocation.
      • MessagePack for C# - ![stars](https://img.shields.io/github/stars/MessagePack-CSharp/MessagePack-CSharp?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/MessagePack-CSharp/MessagePack-CSharp?style=flat-square&cacheSeconds=86400) - Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
      • protobuf-net - ![stars](https://img.shields.io/github/stars/protobuf-net/protobuf-net?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/protobuf-net/protobuf-net?style=flat-square&cacheSeconds=86400) - protobuf-net is a contract based serializer for .NET code, that happens to write data in the "protocol buffers" serialization format engineered by Google.
      • VYaml - ![stars](https://img.shields.io/github/stars/hadashiA/VYaml?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/hadashiA/VYaml?style=flat-square&cacheSeconds=86400) - VYaml is a pure C# YAML 1.2 implementation, which is extra fast, low memory footprint with focued on .NET and Unity.
      • AutoDeconstructable - ![stars](https://img.shields.io/github/stars/nemesissoft/Nemesis.TextParsers?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/nemesissoft/Nemesis.TextParsers?style=flat-square&cacheSeconds=86400) Generator for efficient and automatic flat text serializer/deserializer using [Deconstructable aspect](https://github.com/nemesissoft/Nemesis.TextParsers/blob/master/Specification.md#deconstructables) in [NTP](https://github.com/nemesissoft/Nemesis.TextParsers) library.
      • StructPacker - ![stars](https://img.shields.io/github/stars/RudolfKurka/StructPacker?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/RudolfKurka/StructPacker?style=flat-square&cacheSeconds=86400) binary serializer that auto-generates C# serialization code to achieve peak runtime performance and efficiency.
    • Statically typed resources / configurations

      • EnvVariablesGenerator - ![stars](https://img.shields.io/github/stars/KAW0/EnvVariablesGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/KAW0/EnvVariablesGenerator?style=flat-square&cacheSeconds=86400) Generate code from `.env` files that can be changed after build.
      • NotNot.AppSettings - ![stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/jasonswearingen/NotNot.AppSettings?style=flat-square&cacheSeconds=86400) Automatically create strongly typed C# settings objects from AppSettings.json.
      • SourceConfig - ![stars](https://img.shields.io/github/stars/alekshura/SourceConfig?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/alekshura/SourceConfig?style=flat-square&cacheSeconds=86400) - Generates configuration POCO objects, lists, dictionaries in AOT based on *.json config files.
      • StronglyTypedEmbeddedResources - ![stars](https://img.shields.io/github/stars/surgicalcoder/StronglyTypedEmbeddedResources?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/surgicalcoder/StronglyTypedEmbeddedResources?style=flat-square&cacheSeconds=86400) Generates strongly typed names for Embedded Resources automatically.
      • TxtToListGenerator - ![stars](https://img.shields.io/github/stars/musictopia2/TxtToListGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/musictopia2/TxtToListGenerator?style=flat-square&cacheSeconds=86400) A source generator where if you have a text file as additional file and you have a list ordered by return carriages, then it produces either a list of int or a list of string in c#.
    • Testing

      • Buildenator - ![stars](https://img.shields.io/github/stars/progala2/Buildenator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/progala2/Buildenator?style=flat-square&cacheSeconds=86400) Generate data builder classes for testing purposes (and not only) for your entities. Autofixture + Moq extensions.
      • FluentAssertions.Eventual - ![stars](https://img.shields.io/github/stars/mazharenko/FluentAssertions.Eventual?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/mazharenko/FluentAssertions.Eventual?style=flat-square&cacheSeconds=86400) - Generates a specialized waiting wrapper for `FluentAssertions` assertions, offering a syntax similar to plain `FluentAssertions`.
      • ScenarioTests - ![stars](https://img.shields.io/github/stars/koenbeuk/ScenarioTests?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/koenbeuk/ScenarioTests?style=flat-square&cacheSeconds=86400) Test your code like you would write a notebook. Simply and effective
      • GRPC-Mock-Server - ![stars](https://img.shields.io/github/stars/cezarypiatek/GRPC-Mock-Server?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/cezarypiatek/GRPC-Mock-Server?style=flat-square&cacheSeconds=86400) - A source generator for stubbing GRPC services.
      • InterfaceGenerator - ![stars](https://img.shields.io/github/stars/daver32/InterfaceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/daver32/InterfaceGenerator?style=flat-square&cacheSeconds=86400) - Auto generate interface definition by implementation, for when you need an abstraction for the sake of mocking.
      • MockableStaticGenerator - ![stars](https://img.shields.io/github/stars/HamedFathi/MockableStaticGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/HamedFathi/MockableStaticGenerator?style=flat-square&cacheSeconds=86400) A C# source generator to make an interface and a class wrapper to test static/extension methods.
      • MockGen - ![stars](https://img.shields.io/github/stars/thomas-girotto/MockGen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/thomas-girotto/MockGen?style=flat-square&cacheSeconds=86400) A C# mocking library based on source generators.
      • MockSourceGenerator - ![stars](https://img.shields.io/github/stars/hermanussen/MockSourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/hermanussen/MockSourceGenerator?style=flat-square&cacheSeconds=86400) A C# mocking library that generates mocks at compile-time using a source generator.
      • ProxyInterfaceGenerator - ![stars](https://img.shields.io/github/stars/StefH/ProxyInterfaceSourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/StefH/ProxyInterfaceSourceGenerator?style=flat-square&cacheSeconds=86400) generate an interface and a Proxy class for classes. This makes it possible to wrap external classes which do not have an interface, in a Proxy class which makes it easier to Mock and use DI.
      • Rocks - ![stars](https://img.shields.io/github/stars/JasonBock/Rocks?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/JasonBock/Rocks?style=flat-square&cacheSeconds=86400) A mocking library based on the Compiler APIs (Roslyn + Mocks).
      • Buildenator - ![stars](https://img.shields.io/github/stars/progala2/Buildenator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/progala2/Buildenator?style=flat-square&cacheSeconds=86400) Generate data builder classes for testing purposes (and not only) for your entities. Autofixture + Moq extensions.
      • InterfaceGenerator - ![stars](https://img.shields.io/github/stars/daver32/InterfaceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/daver32/InterfaceGenerator?style=flat-square&cacheSeconds=86400) - Auto generate interface definition by implementation, for when you need an abstraction for the sake of mocking.
      • KnockOff - ![stars](https://img.shields.io/github/stars/NeatooDotNet/KnockOff?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/NeatooDotNet/KnockOff?style=flat-square&cacheSeconds=86400) Source-generated mocking library with a hybrid stub+mock design. Stubs are real classes you define once and reuse across your test project, with full mock capabilities (Return, Verify, When chains) built in.
    • Text templating

      • Transplator - ![stars](https://img.shields.io/github/stars/atifaziz/Transplator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/atifaziz/Transplator?style=flat-square&cacheSeconds=86400) A simple C# source generator for text templates.
      • Weave - ![stars](https://img.shields.io/github/stars/otac0n/Weave?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/otac0n/Weave?style=flat-square&cacheSeconds=86400) Weave is a text templating engine for .NET that is all about attention to detail. Weave handles the tricky work of making your rendered text beautiful.
      • TemplatePropertyGenerator - ![stars](https://img.shields.io/github/stars/JKamsker/JKToolKit.TemplatePropertyGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/JKamsker/JKToolKit.TemplatePropertyGenerator?style=flat-square&cacheSeconds=86400) Generates strongly typed stringformatters based on Stringformats
    • Validation

      • Validly - ![stars](https://img.shields.io/github/stars/Hookyns/validly?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Hookyns/validly?style=flat-square&cacheSeconds=86400) - A performant, zero-allocation, and highly customizable validation library that generates validation logic based on attributes, with usage similar to DataAnnotations.
      • EasyValidate - ![stars](https://img.shields.io/github/stars/mu-dawood/EasyValidate?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/mu-dawood/EasyValidate?style=flat-square&cacheSeconds=86400) - High-performance, type-safe .NET source generator that uses attributes to automatically generate validation for properties, fields, and method parameters. Easy Validate supports async validation, integrates with dependency injection, and includes rich analyzers and code fixers for a seamless developer experience.
    • Webprogramming

      • ApiClientGenerator - ![stars](https://img.shields.io/github/stars/surgicalcoder/ApiClientGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/surgicalcoder/ApiClientGenerator?style=flat-square&cacheSeconds=86400) Generates a strongly typed HttpClient based off MVC's default routing. Can be used to output into multiple projects, like Blazor WebAssembly.
      • ControllerGenerator - ![stars](https://img.shields.io/github/stars/cloud0259/ControllerGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/cloud0259/ControllerGenerator?style=flat-square&cacheSeconds=86400) Automatically generate controllers from services in a web application
      • HttpClientCodeGenerator - ![stars](https://img.shields.io/github/stars/jalalx/HttpClientCodeGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/jalalx/HttpClientCodeGenerator?style=flat-square&cacheSeconds=86400) - HttpClientGenerator is a tool that uses the Roslyn code generator feature to write boilerplate HttpClient code for you.
      • Ridge - ![stars](https://img.shields.io/github/stars/Melchy/Ridge?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Melchy/Ridge?style=flat-square&cacheSeconds=86400) Generates strongly-typed clients for API based on controller definition and internal application details.
      • Safe-Routing - ![stars](https://img.shields.io/github/stars/daviddotcs/safe-routing?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/daviddotcs/safe-routing?style=flat-square&cacheSeconds=86400) Analyses a project's razor pages and MVC controllers, producing strongly-typed representations of those routes as you type
      • TypedSignalR.Client - ![stars](https://img.shields.io/github/stars/nenoNaninu/TypedSignalR.Client?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/nenoNaninu/TypedSignalR.Client?style=flat-square&cacheSeconds=86400) C# Source Generator to create strongly typed SignalR clients.
      • H.NSwag.Generator - ![stars](https://img.shields.io/github/stars/HavenDV/H.NSwag.Generator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/HavenDV/H.NSwag.Generator?style=flat-square&cacheSeconds=86400) - C# Source Generator for NSwag.
      • SourceApi - ![stars](https://img.shields.io/github/stars/alekshura/SourceApi?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/alekshura/SourceApi?style=flat-square&cacheSeconds=86400) - API first Open API code generator based on json or yaml definitions. It generates base abstract controllers with docs, routes, that you inherit and implement in your controllers.
      • ST.NSwag.ServerSourceGenerator - ![stars](https://img.shields.io/github/stars/s-tarasov/ST.NSwag.ServerSourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/s-tarasov/ST.NSwag.ServerSourceGenerator?style=flat-square&cacheSeconds=86400) Generates Web API/ASP.NET Core controllers from a OpenAPI specification.
      • BlazorInteropGenerator - ![stars](https://img.shields.io/github/stars/surgicalcoder/BlazorInteropGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/surgicalcoder/BlazorInteropGenerator?style=flat-square&cacheSeconds=86400) Generates Blazor -> Javascript strongly typed interop methods, by parsing the Javascript it self and generating extension methods for IJSRuntime.
      • BlazorOcticons - ![stars](https://img.shields.io/github/stars/BlazorOcticons/BlazorOcticons?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/BlazorOcticons/BlazorOcticons?style=flat-square&cacheSeconds=86400) Github [Octicons](https://primer.style/octicons/) created as a `.razor` components using source generator. The generated components are available via the NuGet package, the generator itself is available as a separate NuGet package. The project [website](https://blazorocticons.net/) is an example using the generated components.
      • MiniRazor - ![stars](https://img.shields.io/github/stars/Tyrrrz/MiniRazor?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Tyrrrz/MiniRazor?style=flat-square&cacheSeconds=86400) Portable Razor compiler & code generator.
      • RazorPageRouteGenerator - ![stars](https://img.shields.io/github/stars/surgicalcoder/RazorPageRouteGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/surgicalcoder/RazorPageRouteGenerator?style=flat-square&cacheSeconds=86400) Generates methods with parameters for Razor and Blazor pages, so you can navigate without having to guess URLs or parameters.
      • Immediate.Apis - ![stars](https://img.shields.io/github/stars/immediateplatform/immediate.apis?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/immediateplatform/immediate.apis?style=flat-square&cacheSeconds=86400) - Generates minimal APIs bindings for [Immediate.Handlers](https://github.com/immediateplatform/immediate.handlers) handlers.
      • Blazor.TSRuntime - ![stars](https://img.shields.io/github/stars/BlackWhiteYoshi/Blazor.TSRuntime?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/BlackWhiteYoshi/Blazor.TSRuntime?style=flat-square&cacheSeconds=86400) An improved JSRuntime with automatic JS-module loading and caching, compile time errors instead of runtime errors and nice IntelliSense guidance.
      • AjaxService.Gen - ![stars](https://img.shields.io/github/stars/MrAliSalehi/AjaxService?style=flat-square) ![last commit](https://img.shields.io/github/last-commit/MrAliSalehi/AjaxService?style=flat-square&cacheSeconds=86400) - Automatically Generate typescript Ajax calls based on your C# Api endpoints.
      • EndpointHelpers - ![stars](https://img.shields.io/github/stars/gumbarros/EndpointHelpers?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/gumbarros/EndpointHelpers?style=flat-square&cacheSeconds=86400) Generates URL helpers, link generators and redirects from controller actions.
    • XAML / WPF / Avalonia

      • Avalonia.NameGenerator - ![stars](https://img.shields.io/github/stars/avaloniaui/Avalonia.NameGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/avaloniaui/Avalonia.NameGenerator?style=flat-square&cacheSeconds=86400) Generates typed references to named [Avalonia](https://github.com/avaloniaui) XAML controls.
      • boilerplatezero - ![stars](https://img.shields.io/github/stars/IGood/boilerplatezero?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/IGood/boilerplatezero?style=flat-square&cacheSeconds=86400) WPF Dependency Property and Routed Event generator.
      • DependencyPropertyGenerator - ![stars](https://img.shields.io/github/stars/HavenDV/DependencyPropertyGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/HavenDV/DependencyPropertyGenerator?style=flat-square&cacheSeconds=86400) Dependency property and routed event source generator for WPF/UWP/WinUI/Uno/Avalonia/MAUI platforms.
      • WinUI-ObservableSettings - ![stars](https://img.shields.io/github/stars/JasonWei512/WinUI-ObservableSettings?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/JasonWei512/WinUI-ObservableSettings?style=flat-square&cacheSeconds=86400) - Generate boilerplates to read and write settings in packaged WinUI 3 app.
      • PropertyChanged.SourceGenerator - ![stars](https://img.shields.io/github/stars/canton7/PropertyChanged.SourceGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/canton7/PropertyChanged.SourceGenerator?style=flat-square&cacheSeconds=86400) - Powerful INotifyPropertyChanged Source Generator, which generates INPC boilerplate for you as part of your build. Supports features such as automatic and manual dependencies between properties, notifications when specific properties change, and more.
      • ValueChangedGenerator - ![stars](https://img.shields.io/github/stars/ufcpp/ValueChangedGenerator?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/ufcpp/ValueChangedGenerator?style=flat-square&cacheSeconds=86400) for generating PropertyChanged from inner struct members.
      • DevExpress.Mvvm.CodeGenerators - ![stars](https://img.shields.io/github/stars/DevExpress/DevExpress.Mvvm.CodeGenerators?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/DevExpress/DevExpress.Mvvm.CodeGenerators?style=flat-square&cacheSeconds=86400) Generates boilerplate code for your View Models (INotifyPropertyChanged, Commands, IDataErrorInfo, DevExpress services). Compatible with the Prism and MVVM Light libraries.
      • Microsoft MVVM Toolkit - ![stars](https://img.shields.io/github/stars/CommunityToolkit/dotnet?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/CommunityToolkit/dotnet?style=flat-square&cacheSeconds=86400) A modular MVVM library with support for source generators to reduce boilrplate and improve performance.
      • MvvmGen - ![stars](https://img.shields.io/github/stars/thomasclaudiushuber/MvvmGen?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/thomasclaudiushuber/MvvmGen?style=flat-square&cacheSeconds=86400) A lightweight MVVM library for XAML applications that generates your ViewModels with a C# Source Generator.
  • Tips & Tricks

  • Videos