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. Exact time values and a host-advanced clock keep long-running simulations on an explicit timeline.

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

Both Core variants include the same dependency-free simulation timing APIs.

Package Includes
Chronicler.Diagnostics Independent diagnostic channels, lazy logging, and exception guards
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 Core, Diagnostics, and compatibility shim assemblies and their XML documentation. The guides explain how those types work together.