Developing OBS Plugins on Windows Using Swift and C++ Interoperability with CMake

Hello everyone,
This is my first post on the Swift Forum, so please forgive any mistakes in my writing.
I've been incredibly impressed with the recent advancements in Swift on Windows and the improvements in CMake. These developments have led me to consider developing OBS plugins primarily using Swift. I am also interested in seeing Swift handle video processing, where performance is critical, especially given Swift's high performance, memory safety, and excellent interoperability with C++, I believe it is exceptionally well-suited for use cases that combine it with C++.
The interoperability between Swift, C, and C++ is excellent, and using CMake to integrate Swift into OBS plugins has been straightforward. For my development environment, I use VSCode, which provides comfortable and effective code completion and syntax highlighting.
As a small example, I rewrote an existing feature that displays a color source in Swift. It's exciting to see this realization, as there are many OBS users worldwide who primarily use Windows. As a Swift enthusiast, I am delighted that Swift-written code is not confined to macOS but can also be extended to Windows. I have the utmost respect and gratitude for everyone pushing Swift forward.
Thank you for reading, and I look forward to engaging with this community!

14 Likes

Do you have any thoughts about developing this plugin to work on macOS and Linux as well?

To run this on macOS or Linux, all you need is an additional CMake setup. All the code needed to develop the plugin is the same due to Swift's cross-platform support. Eventually, I would like to write a plugin in Swift that is compatible with VST 3.X. It will be developed to run on macOS, Windows, and Linux.

4 Likes