Cross-post: Reddit
I would like to work on a Rust wrapper for the OpenFX API. It's the first time I do FFI, I am a little lost but I would like to learn. Is anyone interested to collaborate on this project?
OpenFX API
The OpenFX API aims to be a standard plug-in API for Image Processing applications. It is used in visual effects applications like Nuke, Natron, Davinci Resolve, ...
The API is made of a couple of C headers that define types and functions the plug-in can use or should implement. Most plug-ins are written in c++ and I think this is a domain where Rust could shine.
What I would like to do
- Create bindings from the C headers
- Create a nice safe API on top of it
- Create build script that generates a bundle like asked by the OpenFX standard
- Create example plug-ins and a boilerplate
Questions
I have already played a little bit and here are the things that are slowing me down at the moment:
-
To create the bindings I would like to use rust-bindgen. I heard good things about it. The problem is that the OpenFX API consists of multiple headers
#including
each other. Is there a way to preserve the original file structure and have rust-bindgen create a module for every header? Or could I do that manually with rust-bindgen? At the moment when I point it to a header (that includes other headers) it generates bindings for all included headers in one big file. -
Thinking forward, when the C headers get updated, what is the best way to update the bindings? Assuming the bindings are created with rust-bindgen and then cleaned-up manually. It seems tedious to regenerate all the bindings (depending if the changes are relatively large)
Contribute?
I would gladly accept anyone who wants to contribute. Be it by being a second maintainer, a casual contributor or someone I could go to with my silly questions. Let me know if someone is interested
- openfx-sys: repo for the bindings