Tooling

Photo Raw SDKs & Decoding Engines

LibRaw, dcraw, Adobe DNG SDK, rawspeed — embed raw decoding into pipelines and apps.

The libraries that turn .CR3 / .NEF / .ARW / .RAF bytes into an RGB array. You only need these if you're building software (a custom pipeline, a viewer, a server-side renderer); end-users go through Photo RAW Editors. For server-side conventional image processing see Image Editing (sharp / libvips).

Active OSS engines

  • LibRaw — LGPL/CDDL, C++. The de-facto OSS raw decoder; descended from dcraw, actively maintained, supports new sensors (CR3, GFX 100 II, OM-1 II, A7R V, Z9, Sony Burano) within weeks of release. Powers digiKam, RawTherapee, darktable's fallback path, ImageMagick raw plug-in, and most third-party viewers.
  • rawspeed — LGPL, C++; the raw decoder developed for darktable. Fast, multithreaded, well-maintained alongside darktable releases. Often used as a sibling to LibRaw.
  • libopenraw — LGPL, C++; smaller, GNOME-leaning.
  • rawloader — Rust port; experimental but improving in 2025.

Legacy / archived

  • dcraw (Dave Coffin) — public domain C; the original raw decoder. Last release 2018; effectively archived. Still works for old formats; new sensors are not supported. LibRaw + rawspeed have inherited its role.
  • dcraw.c forks — many; mostly historical interest now.

Vendor / commercial SDKs

  • Adobe DNG SDK — free, source-available with restrictive license. The reference for DNG (Adobe's open-but-not-OSS raw archive format). Use to write DNGs from custom raw formats or to validate DNG output.
  • Adobe DNG Converter — free GUI/CLI; converts vendor raws → DNG. The official path to "future-proof" raws by re-saving as DNG.
  • Canon CR-SDK / EDSDK — closed, NDA-required for commercial use; vendor SDK for tethered control + raw processing.
  • Sony Camera Remote SDK / Sony Imaging Edge SDK — same shape; closed, registration required.
  • Nikon SDK (NX SDK) — closed; for partner apps.
  • Fujifilm XAcquire SDK — closed.

Standards / format docs

  • DNG specification (Adobe; ISO 12234-2) — the most-public raw container. Real-world DNG includes ProPhoto / Display-P3 metadata, Apple ProRAW, drone DJI raws.
  • TIFF / EP (ISO 12234-1) — the foundation; most raw formats are TIFF-EP variants.
  • CIPA DC-008 — EXIF spec.

Color profiles for raw

  • DCP (DNG Camera Profile) — Adobe's per-camera color profile; what Lightroom / Camera Raw use; OSS tools can use them too.
  • ICC — generic color profile; RawTherapee + darktable accept ICC for input.
  • ColorChecker Passport — capture a 24-patch target to build a custom DCP per camera + lighting.
  • dcamprof — OSS CLI to build DCP profiles from a ColorChecker shot.

In-app integrations

  • ImageMagick + LibRawmagick input.cr3 output.tiff; quick-and-dirty conversion.
  • GraphicsMagick + dcraw — older legacy path.
  • Python: rawpy — wraps LibRaw with NumPy; the standard Python raw toolkit.
  • Node: libraw-bindings — partial; most Node photo pipelines call ImageMagick or dcraw via shell.
  • Rust: rawloader — pure-Rust; growing.

Sensor / format coverage notes

  • CR3 (Canon) — modern Canon; supported by LibRaw (since 0.20), rawspeed, RawTherapee, darktable.
  • NEF / NRW (Nikon) — broad support; lossless-compressed NEF requires recent LibRaw.
  • ARW / SR2 (Sony) — broad support.
  • RAF (Fujifilm) — broad; X-Trans demosaic is harder math; darktable / RawTherapee both have dedicated demosaicers.
  • ORF (Olympus / OM System) — supported.
  • RW2 (Panasonic) — supported.
  • DNG (universal) — supported by everything; Adobe's reference is canonical.
  • Apple ProRAW — DNG variant with extra metadata; LibRaw and rawspeed handle it.
  • Pixel raw — DNG too; DJI raws also DNG.

What's changing in 2024–2026

  • Faster sensor support — LibRaw and rawspeed both shipped same-week support for OM-1 II, Z9, A7R V; vendor lock-in is loosening.
  • Computational raw — Apple ProRAW, Pixel computational DNG; tools handle them as DNG.
  • JPEG-XL as a raw archival sidecar — emerging; lossless re-encode of debayered raw for 30-50% smaller archives. Tooling is early-2026 experimental.
  • Adobe DNG Converter still the reference for "future-proof" raw archive — every couple of years re-convert your vendor raws to DNG so future tools can read them.

Pick this if…

  • Default OSS raw decoder for a pipeline: LibRaw.
  • Building a darktable plugin or fast Linux raw renderer: rawspeed.
  • Need DNG read/write specifically: Adobe DNG SDK + Adobe DNG Converter.
  • Python data-science / ML pipeline: rawpy (LibRaw bindings).
  • Tethered control + raw decode in one closed SDK: vendor SDK (Canon CR-SDK, Sony Camera Remote, Nikon SDK).
  • Future-proof raw archives: Adobe DNG Converter + your vendor raws kept side-by-side.

On this page