| Crates.io | orthanc_sdk |
| lib.rs | orthanc_sdk |
| version | 0.4.0 |
| created_at | 2025-07-21 06:35:25.038698+00 |
| updated_at | 2025-08-12 22:25:08.603131+00 |
| description | Orthanc plugin SDK |
| homepage | |
| repository | https://github.com/FNNDSC/orthanc-rs |
| max_upload_size | |
| id | 1761792 |
| size | 471,614 |
[!CAUTION] Work in progress. Please reach out via GitHub or Matrix if you're using this crate! It would motivate me to complete the missing features.
Idiomatic and hopefully safe abstractions for developing an Orthanc plugin in Rust.
Please refer to the example plugin.
#[non_exhaustive]
OrthancCPlugin.h: orthanc_sdk::bindingsorthanc_sdk::get_configurationtracing::Subscriberimplementation for Orthanc's built-in logging: orthanc_sdk::OrthancLoggerorthanc_sdk::utils::OnChangeThreadorthanc_sdk::register_rest and orthanc_sdk::register_rest_no_lockDicomClient and GeneralClientorthanc_sdk::serve_static_file.
OrthancPluginSendMethodNotAllowed, OrthancPluginRedirect, OrthancPluginSendUnauthorizedOrthancPluginStartMultipartAnswerOrthancPluginStartStreamAnswerOrthancPluginCallPeerApiOrthancPluginHttpClientextern "C" fn definitionsOrthanc can do many operations asynchronously using a built-in job queue.
This is requested by including { "Asynchronous": true } in the POST body.
Doing so is recommended.
API client methods have the following name conventions:
*_request, e.g. DicomClient::anonymize_request, are low-level methods for sending an arbitrary request (either synchronous or asynchronous) to the API endpoint with a generic return type.DicomCLient::anonymize, are high-level methods for making the request with { "Asynchronous": true } in the POST body. The return type will always be PostJsonResponse<IdAndPath<JobId>>.
Thanks to Andrew Webber's Orthanc Rust Samples for helping me get started with FFI and Orthanc's SDK.