Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion NUGET.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ High-performance .NET SDK for accessing **live telemetry data** from iRacing sim

Most .NET iRacing libraries are thin wrappers over the simulator's shared-memory layout — variables looked up by string name at runtime, data delivered through events on the caller's thread. This SDK treats telemetry as a **typed, high-throughput data stream** instead:

- **Compile-time generated structs** instead of runtime string/dictionary lookups — typos are build errors, and only the variables you declare are ever decoded
- **Compile-time generated structs** instead of looking variables up by string name in your code — typos are build errors, and only the variables you declare are ever decoded
- **Non-blocking async data streams with bounded backpressure** instead of callbacks that block further frame processing until your handler returns — your processing speed never stalls data collection
- **The same strongly-typed API for live and IBT playback** — most alternatives are live-only, or treat file playback as a separate path
- **Built-in `System.Diagnostics.Metrics`** integration (rates, dropped records, histograms), so telemetry health plugs directly into your existing observability stack
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ This SDK takes a different approach. It treats telemetry as a **typed, high-thro

**Why it's fast:**

- **Source-generated structs** eliminate runtime reflection and string lookups from the hot path — only the variables you asked for are ever decoded
- **Source-generated structs** eliminate runtime reflection from the hot path — only the variables you asked for are ever decoded
- **Lock-free bounded streams** keep telemetry current under load instead of queueing unboundedly behind a slow consumer
- **Minimal-allocation reads** — each sample is copied once into a reused buffer (guarding against iRacing overwriting it mid-read), then decoded field-by-field via `ReadOnlySpan<T>` with no further allocations, keeping steady-state GC pressure near zero
- **Low-allocation reads** — each sample is copied once into a reused buffer (guarding against iRacing overwriting it mid-read), then only the requested variables are decoded, so per-sample allocation is limited to those values (a boxed scalar or a copied array each)
- **Independent background tasks** mean CPU-intensive session-info YAML parsing never stalls the 60Hz telemetry path

Full details on the threading model and buffering semantics: **[Architecture and Design](./docs/ARCHITECTURE.md)**. For the built-in metrics and how to collect them: **[Metrics and Diagnostics](./docs/METRICS.md)**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions Samples/LocationAndWarnings/LocationAndWarnings.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions Samples/Metrics/MeterListener/MeterListener.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
8 changes: 4 additions & 4 deletions Samples/Metrics/OpenTelemetry/OpenTelemetry.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="OpenTelemetry" Version="1.19.0" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.19.0" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="OpenTelemetry" Version="1.19.1" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.19.1" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions Samples/MinimalExampleAsync/MinimalExampleAsync.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions Samples/MinimalExampleSync/MinimalExampleSync.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions Samples/SimControl/SimControl.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>
</Project>
8 changes: 4 additions & 4 deletions Samples/SpeedRPMGear/SpeedRPMGear.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Diagnostics" Version="10.0.8" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.5.0" />
<PackageReference Include="Microsoft.Extensions.Diagnostics" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.12" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="2.6.0" />
</ItemGroup>

</Project>
Loading
Loading