Introduction
![]()
Welcome to the docs for DCC Oxidizer.
DCC Oxidizer; in other words, making DCC's rusty so they can be used with the Rust programming language.
Why
My motivation for this crate is to enable image processing in a safer and more modern language. Rust offers the performance of a low-level language like C, combined with the advantages of robust safety features such as the borrow checker, no performance downsides caused by garbage collectors, and a modern package manager. Imho, this makes Rust an ideal choice for image processing development.
The only downside is that each DCC has quite some different ways of handling their images. And for using it in one format in Rust would require their buffers to be translated into a single format.
This crate takes care of the translations for the DCC buffers into the image crate. That makes it possible to write all image processing code in one single way, and then link it to all DCC's. Linking Rust to C and C++ is quite good, thanks to cbindgen. That allows the library in Rust to expose some functions which can then be called from their C or C++ counterparts, using FFI (foreign function interface).
Additionally, this crate provides ready to use examples to start with plug-in development, using the FFI bridge setup.
Note: This crate is still in active development, so expect API changes (these would be in the minor upgrade (v0.x.0)). Only Nuke is supported as of now, the plan is to add more.