{"repo":"chickensoft-games/Serialization","free":true,"listed":false,"github":"https://github.com/chickensoft-games/Serialization","clone":"git clone https://github.com/chickensoft-games/Serialization.git","description":"Easy to use serializable models with AOT compilation support and System.Text.Json compatibility.","language":"C#","stars":70,"topics":["csharp","gamedev","serialization"],"license":"MIT","category":"game-templates","readme_excerpt":"💾 Serialization [![Chickensoft Badge][chickensoft-badge]][chickensoft-website] [![Discord][discord-badge]][discord] ![line coverage][line-coverage] ![branch coverage][branch-coverage] System.Text.Json-compatible source generator with automatic support for derived types and polymorphic serialization. --- 📕 Background - ✅ Support 0-configuration polymorphic serialization in AOT builds. - ✅ Support versioning and upgrading outdated models. - ✅ Allow types to access and customize their own JSON representation via serialization/deserialization hooks. - ✅ Support abstract types. - ✅ Support nested types. The Chickensoft Serialization system allows you to easily declare serializable types that will work when compiled for ahead-of-time (AOT) environments, like iOS. It can be easily used alongside the System.Text.Json source generators for more complex usage scenarios. Example model: Serialized JSON: 🥳 Overview The serialization system is designed to be simple and easy to use. Under the hood, it leverages the Chickensoft [Introspection] generator to avoid using reflection that isn't supported when targeting AOT builds. The Chickensoft Introspection generator is also decently fast, since it only uses syntax nodes instead of relying on analyzer symbol data, which can be very slow. The serialization system uses the same, somewhat obscure (but public) API's that the generated output of the System.Text.Json source generators use to define metadata about serializable types. Annoyingly, S","default_branch":null,"files":null,"tree":[],"storefront":"/r/chickensoft-games","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/chickensoft-games/Serialization/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}