A registry of DICOM transfer syntaxes

8 releases (4 breaking)

0.5.1 Oct 23, 2022
0.5.0 Apr 28, 2022
0.5.0-rc.2 Feb 3, 2022
0.5.0-rc.1 Nov 18, 2021
0.1.0 Aug 31, 2019

#163 in WebAssembly

Download history 494/week @ 2022-11-29 468/week @ 2022-12-06 421/week @ 2022-12-13 427/week @ 2022-12-20 221/week @ 2022-12-27 116/week @ 2023-01-03 318/week @ 2023-01-10 320/week @ 2023-01-17 624/week @ 2023-01-24 497/week @ 2023-01-31 721/week @ 2023-02-07 242/week @ 2023-02-14 496/week @ 2023-02-21 240/week @ 2023-02-28 501/week @ 2023-03-07 247/week @ 2023-03-14

1,544 downloads per month
Used in 20 crates (9 directly)


14K SLoC

DICOM-rs transfer-syntax-registry

CratesIO Documentation

This sub-project implements a registry of DICOM transfer syntaxes, which can be optionally extended.

An implementation based on inventory can be used through the Cargo feature inventory-registry. inventory allows for users to register new transfer syntax implementations in a compile time plugin-like fashion, but not all environments support it (such as WebAssembly).


This crate contains the DICOM transfer syntax registry. The transfer syntax registry maps a DICOM UID of a transfer syntax into the respective transfer syntax specifier. In the default implementation, the container of transfer syntaxes is populated before-main through the inventory pattern, then making all registerd TSes readily available through the [TransferSyntaxRegistry] type.

The default Cargo feature inventory-registry can be deactivated for environments which do not support inventory, with the downside of only providing the built-in transfer syntaxes.

This registry should not have to be used directly, except when developing higher level APIs, which should learn to negotiate and resolve the expected transfer syntax automatically.

Transfer Syntax descriptors

This crate encompasses the basic DICOM level of conformance: Implicit VR Little Endian, Explicit VR Little Endian, and Explicit VR Big Endian are built-in. Transfer syntaxes which are not supported, or which rely on encapsulated pixel data, are only listed as stubs to be replaced by separate libraries. The full list is available in the entries module.


~139K SLoC