← iRacing Telemetry SDK for C# .NET
iRSDK Data Format Reference
This reference documents the iRacing SDK (iRSDK) data formats: the live shared-memory map and the IBT (iRacing Binary Telemetry) file structure. It's independent of any particular client library — useful if you're writing your own telemetry reader, debugging a data layout issue, or just curious how iRacing exposes this data under the hood.
How iRacing Telemetry Data Is Laid Out
Live iRacing telemetry comes from the Windows shared-memory map Local\IRSDKMemMapFileName at 60 Hz. Recorded IBT files use the same core iRacing SDK structures,
which is why a single reader implementation can decode live sessions and historical files through
one API.
In both formats, irsdk_header is an index of offsets and counts. It points to
session information stored as YAML, an array of irsdk_varHeader metadata, and the
telemetry data. Each variable header describes a field's name, type, byte offset, and element
count.
Live shared-memory layout
The live map reserves fixed-capacity regions. iRacing rotates writes across three telemetry buffers while header offsets remain stable for the session.
IBT file layout
An IBT file adds a 32-byte disk subheader, packs its metadata without alignment padding, and stores a contiguous sequence of telemetry records after the session YAML.
How a telemetry row is read
Each row contains bufLen packed bytes. For every requested variable, its irsdk_varHeader identifies where the value starts and how to decode it.
Character and Boolean values occupy one byte; integers, bit fields, and floats occupy four
bytes; doubles occupy eight bytes. A count greater than one represents an array, including
the per-car CarIdx* variables.
For live data, a reader should select the newest completed buffer, copy the sample into a reused buffer, and check iRacing's tick counters for a concurrent write. If a write overlapped the copy, it should retry rather than expose a torn telemetry sample.
See the iRacing memory map and IBT data-layout reference in the iRacingTelemetrySDK repository for structure sizes, offset formulas, buffer fields, and a worked IBT example.
Using this format from C#
iRacingTelemetrySDK is a modern, async-first .NET SDK built on top of this format. It handles buffer selection, torn-read retries, and field decoding for you, and exposes telemetry as a compile-time typed, high-throughput async stream instead of raw offsets.