Dear Orthanc community,
I am excited to share orthanc_sdk, a Rust library for building Orthanc plugins. Rust is especially well-suited for developing Orthanc plugins considering the Orthanc project’s focus on being lightweight and support for low-end hardware. Furthermore, Rust’s memory safety features can automatically handle Orthanc SDK’s requirements to call OrthancPluginFreeMemoryBuffer and etc. without the overhead of GC.
This effort improves upon prior art (see andrewwebber/orthanc-rust-plugins) by providing helper functions to keep safe and unsafe code separated, and idiomatic patterns for error handling and JSON (de)serialization. Wrappers for some functions of Orthanc Toolbox are provided: so far, there is one for OrthancPluginGetConfiguration and OrthancPluginLogMessage. As such, it is possible to build plugins which conform to Orthanc’s canonical configuration and logging systems (opposed to being configured by custom environment variables and/or arbitrary logging to stderr directly).
More information can be found on our introductory blog post: