From 7086201e3a9db3ff62ab27f9d5dcc622bf80d747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=84=E3=81=AC=E3=81=84=E3=81=AC?= <97830071+InuInu2022@users.noreply.github.com> Date: Thu, 2 Oct 2025 07:43:06 +0900 Subject: [PATCH] Added 6 source generators: RapidEnum, Csv-CSharp, MemoryPack, MessagePack for C#, protobuf-net, VYaml - Enums -> RapidEnum - Serialization -> Csv-CSharp, MemoryPack, MessagePack for C#, protobuf-net, VYaml Note: - Both "MessagePack for C#" and "protobuf-net" have supported Source Generators since v3. --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 552a5a0..06209fe 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ Add GitHub topic [`csharp-sourcegenerator`](https://github.com/topics/csharp-sou - [FastEnumGenerator](https://github.com/musictopia2/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](https://github.com/joseftw/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](https://github.com/andrewlock/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](https://github.com/hanachiru/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. ### Functional Programming @@ -168,15 +169,20 @@ Add GitHub topic [`csharp-sourcegenerator`](https://github.com/topics/csharp-sou - [AutoDeconstructable](https://github.com/nemesissoft/Nemesis.TextParsers/tree/master/Nemesis.TextParsers.CodeGen/Deconstructable) -![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. - [Azura](https://github.com/Lucina/Azura) -![stars](https://img.shields.io/github/stars/Lucina/Azura?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Lucina/Azura?style=flat-square&cacheSeconds=86400) Generates binary [de]serializers on Streams at design time. +- [Csv-CSharp](https://github.com/nuskey8/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. - [CSV-Parser-Generator](https://github.com/LokiMidgard/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. - [GenPack](https://github.com/dimohy/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. +- [MemoryPack](https://github.com/REPO) - ![stars](https://img.shields.io/github/stars/Cysharp/MemoryPack?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/Cysharp/MemoryPack?style=flat-square&cacheSeconds=86400) - Zero encoding extreme performance binary serializer for C# and Unity. +- [MessagePack for C#](https://github.com/MessagePack-CSharp/MessagePack-CSharp) - ![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#] - [ProtobufSourceGenerator](https://github.com/ladeak/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. +- [protobuf-net](https://github.com/protobuf-net/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. - [SerdeDn (serde-sn)](https://github.com/agocke/serde-dn) -![stars](https://img.shields.io/github/stars/agocke/serde-dn?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/agocke/serde-dn?style=flat-square&cacheSeconds=86400) is a port of the popular [serde.rs](https://serde.rs/) Rust serialization/deserialization library to .NET. Basic cases are fully automated using a C# source generator. - [SpreadCheetah](https://github.com/sveinungf/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](https://github.com/ZingBallyhoo/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. - [StructPacker](https://github.com/RudolfKurka/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. - [Tinyhand](https://github.com/archi-Doc/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. - +- [VYaml](https://github.com/hadashiA/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. + #### Json - [GeneratedJsonConverters](https://github.com/aviationexam/json-converter-source-generator) -![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.