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.
