EXPLICIT STATE TRANSFER FOR .NET
Record state on your terms.
Chronicler gives each type one visible schema for JSON, MemoryPack, restoring existing runtime objects, stable links, and deterministic replay signals.
One schema, several jobs
Own the schema
Make field names, defaults, order, and ownership explicit in
RecordData(...).
Choose a transport
Use built-in JSON everywhere, with built-in MemoryPack available in the standard package.
Populate your runtime
Transfer state into initialized objects while the host keeps ownership of construction and lifecycle.
Keep deterministic state connected
Restore stable links
Represent runtime-owned and external references with stable IDs instead of serializing them inline.
Compare recorded state
Build deterministic replay and conformance signals directly from the recording schema.
Expose canonical helper state
Integrate state-backed helper types with System.Text.Json when reconstruction from one state value is intentional.
Package family
| Package | Includes |
|---|---|
Chronicler.Core |
Core recording APIs plus JSON and MemoryPack transports |
Chronicler.Core.Lean |
Core recording APIs and JSON, without the MemoryPack dependency or transport |
Chronicler.MemoryPackShim |
Compatibility attributes for annotated Lean assemblies; not a serializer |
Guides
- Getting started defines a schema and moves it through the built-in transports.
- Values, owned state, and links explains object ownership, defaults, link resolution, and package boundaries.
- Deterministic record hashes documents the replay and conformance hash contract.
Part of the LSF ecosystem
Chronicler is designed for deterministic libraries, games, simulations, and tools throughout the Lockstep Simulation Framework ecosystem:
Resources
The API reference is generated from the standard library and compatibility shim XML documentation. The guides explain how those types work together in task-oriented prose.