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

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.