Introduction

Welcome to the OpenSR SDK documentation.

The OpenSR SDK provides the interfaces, structures, and conventions required to create plugins for the OpenSR ecosystem.

OpenSR is designed around a modular architecture where telemetry producers, hardware outputs, dashboards, overlays, launch tools, and configuration systems are all implemented as independent plugins.

The SDK allows developers to create:

  • Game (IN) plugins
  • OUT plugins
  • Dashboard UI plugins
  • Settings plugins
  • Device integrations
  • Telemetry bridges
  • Motion systems
  • Network protocols
  • Custom monitoring tools

The architecture is intentionally lightweight and native-first:

  • Pure Win32/C++
  • No managed runtime required
  • Compatible with older Visual Studio versions
  • Plugin-owned threading model
  • Host-controlled lifecycle
  • Optional shared memory interoperability

The SDK is also designed for interoperability with almost any programming language capable of calling native DLL exports or interoperating with C APIs.

This makes it possible to create integrations using:

  • C++
  • C#
  • Delphi
  • Rust
  • Python
  • Zig
  • Nim
  • Lua
  • and many other languages

To simplify managed development, OpenSR also provides a C# wrapper layer for easier integration with .NET applications and tools.

This documentation explains:

  • Plugin interfaces
  • Lifecycle management
  • Context structures
  • Telemetry flow
  • UI integration
  • Settings systems
  • Profile handling
  • Rendering integration
  • Best practices

The SDK is designed to remain:

  • Simple
  • Deterministic
  • High performance
  • Easy to debug
  • Easy to extend

Unlike monolithic simulator frameworks, OpenSR separates responsibilities clearly between:

  • Telemetry producers
  • Hardware/output consumers
  • UI systems
  • Configuration modules

This makes it possible to build highly specialized plugins without modifying the core application.

The examples in this documentation use real production-style implementations taken from OpenSR plugins, including:

  • Direct2D interfaces
  • XML profile systems
  • UDP telemetry
  • Input handling
  • Device communication
  • Runtime plugin reload workflows

The goal of this documentation is not only to explain the API, but also to demonstrate recommended plugin architecture patterns for stable and maintainable OpenSR integrations.