SVappsLAB.iRacingTelemetrySDK 1.0.0-alpha.1

Prefix Reserved
This is a prerelease version of SVappsLAB.iRacingTelemetrySDK.
dotnet add package SVappsLAB.iRacingTelemetrySDK --version 1.0.0-alpha.1
                    
NuGet\Install-Package SVappsLAB.iRacingTelemetrySDK -Version 1.0.0-alpha.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" Version="1.0.0-alpha.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SVappsLAB.iRacingTelemetrySDK" Version="1.0.0-alpha.1" />
                    
Directory.Packages.props
<PackageReference Include="SVappsLAB.iRacingTelemetrySDK" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SVappsLAB.iRacingTelemetrySDK --version 1.0.0-alpha.1
                    
#r "nuget: SVappsLAB.iRacingTelemetrySDK, 1.0.0-alpha.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SVappsLAB.iRacingTelemetrySDK@1.0.0-alpha.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SVappsLAB.iRacingTelemetrySDK&version=1.0.0-alpha.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SVappsLAB.iRacingTelemetrySDK&version=1.0.0-alpha.1&prerelease
                    
Install as a Cake Tool

iRacing Telemetry SDK for C# .NET

High-performance .NET SDK for accessing live telemetry data from iRacing simulator and IBT file playback. Features compile-time code generation for strongly-typed telemetry access with lock-free performance optimizations.

Why Use This SDK?

  • Live Telemetry: Real-time access to speed, RPM, tire data, and 200+ other variables during iRacing sessions
  • IBT File Support: Full support for telemetry data saved in iRacing IBT files. Work with historical data using the same API as live telemetry
  • Type Safety: Enum-based telemetry variables with IntelliSense support and compile-time validation
  • High Performance: Processes over half a million telemetry records/second with lock-free channel architecture
  • Modern API: Real-time channel-based data streams with async patterns and automatic backpressure handling

Perfect for building dashboards, data analysis tools, race engineering applications, and telemetry visualizations.

✨ What's New in v1.0

  • 2x Performance Boost: Lock-free channels delivering over 600K records/sec
  • Strongly-typed Variables: IntelliSense support with compile-time validation using TelemetryVar enums
  • Nullable Properties: Better represents iRacing's dynamic variable availability
  • Modern Async Patterns: Channel-based streams allow asynchronous non-blocking processing of the real-time data streams

Installation

dotnet add package SVappsLAB.iRacingTelemetrySDK

Quick Start

using Microsoft.Extensions.Logging;
using SVappsLAB.iRacingTelemetrySDK;

// 1. Define the telemetry variables you want to track
[RequiredTelemetryVars([TelemetryVar.Speed, TelemetryVar.RPM])]
public class Program
{
    public static async Task Main(string[] args)
    {
        // 2. Create logger
        var logger = LoggerFactory.Create(builder => builder.AddConsole())
                                  .CreateLogger("Simple.Program");

        // 3. Choose data source
        IBTOptions? ibtOptions = null;  // null for live telemetry from iRacing
                                        // = new IBTOptions("gt3_spa.ibt");  // IBT file path for playback

        // 4. Create telemetry client
        using var client = TelemetryClient<TelemetryData>.Create(logger, ibtOptions);
        using var cts = new CancellationTokenSource();

        // 5. Subscribe to telemetry data stream (60Hz rate)
        var telemetryTask = Task.Run(async () =>
        {
            await foreach (var data in client.TelemetryDataStream.ReadAllAsync(cts.Token))
            {
                Console.WriteLine($"Speed: {data.Speed}, RPM: {data.RPM}");
            }
        }, cts.Token);

        // 6. Subscribe to session info updates
        var sessionTask = Task.Run(async () =>
        {
            await foreach (var session in client.SessionDataStream.ReadAllAsync(cts.Token))
            {
                Console.WriteLine($"Track: {session.WeekendInfo.TrackName}, Drivers: {session.DriverInfo.Drivers.Count}");
            }
        }, cts.Token);

        // 7. Start monitoring
        var monitorTask = client.Monitor(cts.Token);
        await Task.WhenAny(monitorTask, telemetryTask, sessionTask);
    }
}

Requirements

  • .NET 8.0+

Documentation & Examples

License

Apache License 2.0 - See LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-alpha.1 41 9/5/2025
0.9.8.3 81 8/1/2025
0.9.8.1 125 7/31/2025
0.9.8 102 7/27/2025
0.9.7 152 7/7/2025
0.9.6 144 7/1/2025
0.9.5 138 6/15/2025
0.9.4 143 6/14/2025
0.9.3 105 6/1/2025
0.9.2 204 5/12/2025
0.9.1 153 4/30/2025
0.9.0 207 3/9/2025
0.8.0 141 2/10/2025
0.7.0 158 12/8/2024
0.6.7 120 10/13/2024
0.6.5 111 9/28/2024
0.6.3 132 9/17/2024
0.6.2 138 9/14/2024
0.6.1 135 9/9/2024
0.6.0 146 8/27/2024
0.5.0 161 8/17/2024
0.4.8 129 7/20/2024
0.1.7-beta 143 7/20/2024 0.1.7-beta is deprecated because it is no longer maintained.
0.1.6-beta 126 7/20/2024 0.1.6-beta is deprecated because it is no longer maintained.