Cargo Features

[dependencies]
dicom-transfer-syntax-registry = { version = "0.8.0", default-features = false, features = ["inventory-registry", "native", "native_windows", "jpeg", "jpegxl", "openjp2", "rle", "rayon", "simd", "openjpeg-sys", "charls", "openjpeg-sys-threads", "zune-jpegxl-threads"] }
default = rayon, simd

These default features are set whenever dicom-transfer-syntax-registry is added without default-features = false somewhere in the dependency tree.

inventory-registry

inventory for compile time plugin-based transfer syntax registration

Enables inventory-registry of dicom-encoding

native = jpeg, rle

natively implemented image encodings

native_windows = jpeg, rle

native implementations that work on Windows

jpeg native? native_windows? = jpeg-decoder, jpeg-encoder

native JPEG support

Affects adapters::jpeg, entries::JPEG_BASELINE, entries::JPEG_EXTENDED, entries::JPEG_LOSSLESS_NON_HIERARCHICAL, entries::JPEG_LOSSLESS_NON_HIERARCHICAL_FIRST_ORDER_PREDICTION

jpegxl

native JPEG XL support

Enables jxl-oxide ^0.9.1, zune-core, and zune-jpegxl

Affects adapters::jpegxl, entries::JPEG_XL_LOSSLESS, entries::JPEG_XL_RECOMPRESSION, entries::JPEG_XL

openjp2

JPEG 2000 support via the OpenJPEG Rust port,
works on Linux and a few other platforms

Enables openjp2 of jpeg2k

Affects adapters::jpeg2k, entries::JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::JPEG_2000_IMAGE_COMPRESSION, entries::JPEG_2000_PART2_MULTI_COMPONENT_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::JPEG_2000_PART2_MULTI_COMPONENT_IMAGE_COMPRESSION, entries::HIGH_THROUGHPUT_JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::HIGH_THROUGHPUT_JPEG_2000_WITH_RPCL_OPTIONS_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::HIGH_THROUGHPUT_JPEG_2000_IMAGE_COMPRESSION

rle native? native_windows?

native RLE lossless support

Affects adapters::rle_lossless, entries::RLE_LOSSLESS

rayon default openjpeg-sys-threads?

enable Rayon for JPEG decoding

Enables rayon of optional jpeg-decoder and optional jxl-oxide ^0.9.1

simd default

enable SIMD operations for JPEG encoding

Enables simd of optional jpeg-encoder

openjpeg-sys

JPEG 2000 support via the OpenJPEG native bindings, conflicts with openjp2

Enables openjpeg-sys of jpeg2k

Affects adapters::jpeg2k, entries::JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::JPEG_2000_IMAGE_COMPRESSION, entries::JPEG_2000_PART2_MULTI_COMPONENT_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::JPEG_2000_PART2_MULTI_COMPONENT_IMAGE_COMPRESSION, entries::HIGH_THROUGHPUT_JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::HIGH_THROUGHPUT_JPEG_2000_WITH_RPCL_OPTIONS_IMAGE_COMPRESSION_LOSSLESS_ONLY, entries::HIGH_THROUGHPUT_JPEG_2000_IMAGE_COMPRESSION

charls

jpeg LS support via charls bindings

Enables charls

Affects adapters::jpegls, entries::JPEG_LS_LOSSLESS_IMAGE_COMPRESSION, entries::JPEG_LS_LOSSY_IMAGE_COMPRESSION

openjpeg-sys-threads = rayon

build OpenJPEG with multithreading,
implies "rayon"

Enables threads of optional jpeg2k

zune-jpegxl-threads

multithreading for JPEG XL encoding

Enables threads of optional zune-jpegxl

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

jpeg-decoder jpeg?
jpeg-encoder jpeg?