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 + LibRaw —
magick 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.