Skip to content
GlatzelPublic

About

Extensive raw image processing library with Rust bindings, Python API, and a flexible decode/post-processing pipeline.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

664 Commits

Folders and files

Repository files navigation

Fornax

Release CI codecov CodSpeed Badge

Fornax is an extensive raw image processing library. Its goal is to provide a one-stop solution for raw image processing with both simple high-level APIs and low-level control, while also enabling users to extend or plug in their own raw image processing algorithms.

Fornax uses built-in or custom decoders and post-processors to produce ImageBuffers (from the image crate) that can be further transformed into other data types for analysis or display.

Key Features

  • 🖼 Flexible decoding pipeline — Choose built-in or custom decoders.
  • ⚙️ Extensible post-processing — Plug in your own algorithms.
  • 🦀 Rust + Python support — Native performance with Python accessibility.
  • 🔒 Pure-Rust decoding — No C/C++ decoder dependency in the production image pipeline.
  • 📷 Native RAW formats — DNG, Sony ARW/NRW, Canon CR3/CRM, Nikon NEF, Fujifilm RAF, Hasselblad 3FR, Phase One/Leaf IIQ, and single-shot Panasonic RW2 V4/V5/V6/V8.

Components

  • fornax-raw-core: Shared pipeline types, errors, and decoder/processor contracts.
  • fornax-bmff: Bounded generic ISO-BMFF box and sample-table parsing.
  • fornax-codec: Format-neutral request, sample-buffer, predictor, Huffman, and generic codec interfaces.
  • fornax-decoder: Feature-gated native decoder facade over DNG and the vendor format crates.
  • fornax-raw-canon: Canon CR3/CRM parsing and owned lossless CRX decoding.
  • fornax-raw-pipeline: Black/white-level normalization, demosaic algorithms, RGB reconstruction, and color processing.
  • fornax-raw: High-level facade tying the stages together.
  • fornax-devtool: Pinned fixtures and development helpers.
  • compare-demosaic: Reference-versus-Fornax demosaic comparison harness.
  • fornax-py: Python binding source, currently excluded from the Rust workspace while its public API is stabilized.

Development

Install the development environment and pinned reference sources:

source scripts/setup.sh

On Windows, run the PowerShell setup from the repository root:

./scripts/setup.ps1

About

Extensive raw image processing library with Rust bindings, Python API, and a flexible decode/post-processing pipeline.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages