8 repository-uri
Serializers that embed type information or use union attributes to handle untyped, interface-typed, or polymorphic objects.
Distinct from Custom Type Serializers: Distinct from Custom Type Serializers: focuses on polymorphic/dynamic type handling rather than custom mapping functions.
Explore 8 awesome GitHub repositories matching data & databases · Polymorphic Type Serializers. Refine with filters or upvote what's useful.
MessagePack-CSharp is a high-performance binary serialization library for .NET applications that converts object graphs into the MessagePack format. It functions as a C# data serialization toolkit and a polymorphic binary encoder capable of handling abstract classes and interfaces using union keys to identify concrete derived types. The library provides a binary format transcoder to transform binary data into human-readable JSON for debugging. It supports ahead-of-time formatter generation to avoid runtime overhead and implements LZ4 binary compression to reduce the size of serialized data.
Handles the serialization of abstract classes and interfaces using union keys to identify concrete derived types.
MessagePack-CSharp is a high-performance binary serializer for .NET that converts C# objects to and from the compact MessagePack format. It uses compile-time source generation to produce AOT-safe formatters and resolvers, eliminating runtime reflection and enabling ahead-of-time compilation scenarios. The serializer encodes object fields as integer indices instead of string keys, producing compact binary output with deterministic field ordering, and provides stack-allocated reader and writer structs for direct encoding and decoding of MessagePack primitives without heap allocations. The libra
Embeds .NET type names or uses union attributes to serialize and deserialize polymorphic objects.
kotlinx.serialization is an official Kotlin library that provides a multiplatform serialization framework for converting Kotlin objects to and from multiple data formats. It uses a Kotlin compiler plugin to generate serializer and deserializer code at compile time, avoiding runtime reflection and preserving type safety through annotations like @Serializable. The library supports JVM, JS, and Native targets with platform-specific runtime libraries, enabling consistent serialization across all Kotlin environments. The library distinguishes itself through its multi-format encoder-decoder abstr
Enables serialization of sealed classes and interfaces through a registry of subclass serializers.
vcmi is an open-source game engine for Heroes of Might and Magic III that recreates the gameplay, logic, and rendering of the original strategy game. It serves as a cross-platform game runtime supporting Windows, Linux, macOS, Android, and iOS, providing a turn-based strategy simulator for strategic world map navigation and tactical combat. The project is built as a moddable game framework, featuring a data-driven modding system and a sandboxed Lua scripting integration. These allow for the definition of custom gameplay logic, spell effects, and the addition of new factions, characters, and a
Translates in-memory objects to binary streams while preserving pointer relationships and reinstantiating derived class types.
protobuf-net is a .NET library that serializes and deserializes objects using the Protocol Buffers binary format for efficient data exchange. It provides a code-first gRPC service framework, allowing developers to define service contracts directly from existing C# classes without writing separate .proto files. The library is nullable-aware, encoding null values in collections and nullable scalars using wrapper messages to distinguish null from default zero values, and includes an ahead-of-time serializer generator that compiles serializer code at build time to eliminate runtime code generati
Declares derived types on base contracts to encode and reconstruct full class hierarchies during serialization.
rkyv este un framework de deserializare zero-copy pentru Rust care oferă un format de serializare binară pentru arhive de date memory-mappable. Permite structurilor de date complexe să fie mapate la bytes și accesate direct dintr-un buffer fără a aloca memorie nouă sau a copia date. Proiectul permite serializarea tipurilor polimorfice și a obiectelor de tip trait, menținându-le comportamentul dinamic și structura în forma binară. Utilizează adresarea prin pointeri relativi și împachetarea structurilor aliniate la byte pentru a se asigura că datele rămân valide indiferent de locul în care sunt încărcate în memorie. Framework-ul acoperă persistența datelor de înaltă performanță și gestionarea stării cu latență scăzută prin memory mapping direct. Oferă mecanisme atât pentru accesul la date zero-copy, cât și pentru reconstrucția completă a tipului de date atunci când este necesar de către aplicație.
Encodes trait objects and polymorphic types using stable identifiers to maintain dynamic dispatch in binary form.
Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs into a compact binary format for high-performance data exchange. It includes an IDL-based schema compiler to transform interface definition language files into type-safe native data models and a schema evolution manager to maintain forward and backward compatibility. The project features a zero-copy data access layer that allows reading specific fields from binary rows without deserializing the entire object. It supports dual-mode serialization, enabling a toggle between a por
Serializes objects based on their actual runtime types to support inheritance hierarchies.
Odin Serializer este un framework conceput pentru motorul de joc Unity pentru a converti grafuri de obiecte complexe în formate binare sau JSON persistente. Oferă un sistem pentru salvarea și încărcarea structurilor de clasă complicate, inclusiv generice imbricate și tipuri polimorfice, menținând în același timp integritatea structurală a datelor. Framework-ul se distinge prin suportul pentru compilarea ahead-of-time, generând metadatele de tip necesare în timpul procesului de build pentru a asigura funcționalitatea pe platformele care restricționează reflexia la runtime. Se integrează direct cu ciclul de viață al motorului Unity, permițând serializarea tipurilor specifice motorului și gestionarea referințelor externe de active prin identificatori unici persistenți. Utilizatorii pot defini politici de serializare granulare pentru a controla ce membri ai clasei sunt incluși sau excluși în timpul procesului de conversie. Această capabilitate permite optimizarea stocării și transmisiei datelor prin asigurarea faptului că sunt procesate doar informațiile necesare, în timp ce motorul subiacent gestionează maparea recursivă a ierarhiilor complexe de moștenire.
Manages the serialization of nested generics and polymorphic types to ensure accurate reconstruction of complex data.