A pure Rust ecosystem of libraries and tools for DICOM-compliant systems, enabling reading, writing, and processing of medical imaging data.
DICOM-rs is a Rust-based ecosystem of libraries and tools that implements the DICOM (Digital Imaging and Communications in Medicine) standard. It provides functionalities for reading, writing, and processing DICOM files, handling pixel data, and supporting DICOM network protocols, enabling the development of medical imaging applications.
Developers and researchers building medical imaging software, healthcare IT systems, or DICOM interoperability tools who want a safe, performant, and modern alternative to traditional C/C++ DICOM libraries.
It offers a pure Rust implementation that combines memory safety, high performance, and an intuitive API, along with a comprehensive set of tools for both file-based and network-based DICOM operations, all within a single ecosystem.
Rust implementation of the DICOM standard
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a user-friendly API for reading and writing DICOM files, as demonstrated in the README's example code using `open_file` and element access to retrieve patient name and modality.
Enables decoding and conversion of DICOM imaging data into usable formats like images and multidimensional arrays through the dedicated pixeldata crate and tools like `toimage`.
Implements DICOM upper layer protocol and service classes such as Storage and Verification via the `ul` crate and CLI tools, allowing for building networked applications like PACS.
Includes a suite of CLI utilities for file inspection, format conversion, transcoding, and service emulation, as listed in the Tools section, facilitating common DICOM operations.
Comes with the standard DICOM data dictionary in the dictionary-std crate, providing easy access to DICOM tags and attributes without external dependencies.
The project is under active development, as noted in the Roadmap section, which means APIs may change and break compatibility in future releases, requiring careful version management.
Requires a Rust toolchain to build and use, with minimum version constraints (MSRV 1.72.0 for default features) that may necessitate keeping up with stable releases, adding overhead for non-Rust environments.
As a newer implementation, it has a smaller ecosystem and community support compared to established libraries like DCMTK, which can affect the availability of third-party integrations and troubleshooting resources.
Building with non-default features may require careful selection and understanding of the various crates, as hinted in the Building section, potentially increasing setup complexity for advanced use cases.