Rust OBS Wrapper
A safe wrapper around the OBS API, useful for creating OBS sources, filters and effects. The wrapper is quite incomplete and will most likely see dramatic API changes in the future.
This repo also includes plugins creating using the wrapper in the /plugins
folder.
Plugins
Folder | Description |
---|---|
/scroll-focus-filter | an OBS filter that will zoom into the currently focused X window |
Usage
In your Cargo.toml
file add the following section, substituting <module-name>
for the name of
the module:
[]
= "0.1"
[]
= "<module-name>"
= ["cdylib"]
The process for creating a plugin is:
- Create a struct that implements Module
- Create a struct that will store the plugin state
- Implement the required traits for the module
- Enable the traits which have been enabled in the module
load
method
use ;
// The module that will handle creating the source.
;
// The source that will be shown inside OBS.
;
// The state of the source that is managed by OBS and used in each trait method.
;
// Implement the Sourceable trait for TestSource, this is required for each source.
// It allows you to specify the source ID and type.
// Allow OBS to show a name for the source
// Implement the Module trait for TestModule. This will handle the creation of the source and
// has some methods for telling OBS a bit about itself.
Installation
- Run
cargo build --release
- Copy
/target/release/<module-name>.so
to your OBS plugins folder (/usr/lib/obs-plugins/
) - The plugin should be available for use from inside OBS
License
Like obs-studio, obs-wrapper
is licensed under GNU General Public License v2.0.
See LICENSE for details.