WinterRose.WinterForge
25.2.19-alpha
See the version list below for details.
dotnet add package WinterRose.WinterForge --version 25.2.19-alpha
NuGet\Install-Package WinterRose.WinterForge -Version 25.2.19-alpha
<PackageReference Include="WinterRose.WinterForge" Version="25.2.19-alpha" />
<PackageVersion Include="WinterRose.WinterForge" Version="25.2.19-alpha" />
<PackageReference Include="WinterRose.WinterForge" />
paket add WinterRose.WinterForge --version 25.2.19-alpha
#r "nuget: WinterRose.WinterForge, 25.2.19-alpha"
#:package WinterRose.WinterForge@25.2.19-alpha
#addin nuget:?package=WinterRose.WinterForge&version=25.2.19-alpha&prerelease
#tool nuget:?package=WinterRose.WinterForge&version=25.2.19-alpha&prerelease
Stream-Based Object Serialization and Deserialization � WinterForge
WinterForge is a high-performance, human-readable object serialization framework designed to adapt fluidly to project needs rather than forcing projects to conform to its rules. It blends speed with developer clarity by offering a dual format system that supports both human-readable text and opcode-based intermediate representation for maximum performance.
Core Features
Stream-based I/O:
UtilizesIO.Streamfor serialization and deserialization, enabling flexible storage and transfer.Dual Format System:
- Human-readable text: Easy for developers to read, debug, diff, and edit manually.
- Opcode intermediate representation: Structured sequential opcodes for fast, optimized serialization cycles.
Comprehensive Type Support:
- Primitive types (
int,float,bool,string, etc.) with full typename transcription. - Anonymous types: Supports serialization and deserialization of inline, unnamed objects, including nested anonymous types.
- Nested objects, enums, lists, arrays, and nullable types.
- Static classes, fields, and properties.
- Primitive types (
Attribute-Driven Control:
- Inclusion/exclusion of fields and properties using attributes.
- Hooks on instance methods for lifecycle events:
BeforeSerializeBeforeDeserializeAfterDeserialize
- Hooks can be asynchronous (
async Task), currently not awaited but planned as optional.
Advanced Object Handling:
- Object reference ID system with aliasing and stack-based referencing for reuse.
- Ability to call methods during deserialization, using return values dynamically.
- Custom value providers via
CustomValueProvider<T>for type-specific value control, without manual registration. - Supports both structs and classes.
Progress and Formatting:
- Abstract progress tracking system (useful for loading bars, UI feedback).
- Formatting modes controlled by
TargetFormatenum:HumanReadableIndentedHumanReadableOpcodes
- Automatic conversion between human-readable and opcode formats.
Smart Type Discovery and Reflection:
- Dynamically discovers types and members.
- Supports runtime variables and integration with reflection helpers.
Design Philosophy
Performance + Developer Clarity:
Optimized to serialize thousands of objects in milliseconds while maintaining human readability for easier debugging and version control.Structure-First Approach:
Data is always read in the order it is written, ensuring deterministic and reliable serialization.
Current Limitations & Future Plans
- Dictionaries not yet supported.
- Upcoming features:
- Support for math and boolean expressions within serialized data.
- Importing and including other WinterForge files/modules.
- Templates and repeatable code blocks.
- Conditional serialization and expression support.
- Optional async lifecycle hook awaiting.
License
You can find the license details here.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- WinterRose.Reflection (>= 25.2.6)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on WinterRose.WinterForge:
| Package | Downloads |
|---|---|
|
WinterRose
A library made mostly for personal use. distribution without consent of the Author is strictly forbidden |
|
|
WinterRose.Monogame.Modding
Provides a way of making mod 'items' in your games. made for WinterRose.Monogame, but may work in other environments. this does NOT provide a means to make 'programmed' mods. instead this is a kind of mod that applies to an ingame item to alter its stats its very customizable |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.2.5 | 108 | 5/27/2026 |
| 26.2.4 | 99 | 5/27/2026 |
| 26.2.3 | 91 | 5/26/2026 |
| 26.2.2 | 83 | 5/22/2026 |
| 26.2.1 | 93 | 5/22/2026 |
| 26.2.0 | 99 | 5/22/2026 |
| 26.1.2 | 102 | 5/1/2026 |
| 26.1.2-debug | 100 | 5/13/2026 |
| 26.1.1 | 129 | 2/9/2026 |
| 26.1.0 | 136 | 1/1/2026 |
| 25.4.1 | 162 | 12/20/2025 |
| 25.4.0 | 211 | 12/20/2025 |
| 25.3.0 | 352 | 9/18/2025 |
| 25.3.0-alpha-7 | 244 | 8/8/2025 |
| 25.3.0-alpha-6 | 232 | 8/8/2025 |
| 25.3.0-alpha-5 | 256 | 8/8/2025 |
| 25.3.0-alpha-4 | 253 | 8/8/2025 |
| 25.3.0-alpha-3 | 240 | 8/8/2025 |
| 25.3.0-alpha-2 | 264 | 8/8/2025 |
| 25.2.19-alpha | 204 | 6/19/2025 |
Dictionary support is now in alpha!