A Loupedeck plugin is a C# dynamic library that implements several base classes from the Loupedeck SDK. The only mandatory requirement for the dynamic library that the Loupedeck software loads are that it needs to provide classes derived from the Plugin and Application base classes (see the class reference LINK). All other requirements are optional.
There are several architectural options on how to connect a Loupedeck plugin to an application. You can directly interact with the RPC/IPC interface provided by the target application, or you can have an application-side plugin that exposes the application APIs to the Loupedeck plugin connected via an IPC. Use the former if you want to implement a plugin for remote service (such as Twitch). Use the latter when communicating with applications like Adobe Photoshop or Adobe Lightroom.
The Loupedeck SDK has in-built support for the WebSocket protocol for interprocess communication.
The Loupedeck software also provides enablers for MIDI-based communication.
The high-level process for developing Loupedeck plugins is: