[REDLNX//TECHNICAL]

The workspace. The runtime. The pipeline. Read the code, not the brochure.

RedLnx is a Tauri 2 desktop app over a Rust workspace, a local ONNX runtime, and a RAW plus colour pipeline that runs entirely on your machine. This page describes how it is built. Where it says in progress, it means in progress.

Everything here is checkable. The source is AGPL-3.0. If a claim on this page does not match the repository, open an issue.

[ The Workspace ]

The backend is a Rust workspace. Each crate owns one concern. The Tauri commands stay thin: the real work lives in the engine, core, and render crates, never in the app shell.

CRATE RESPONSIBILITY
redlnx-common Shared types and errors. The foundation every other crate builds on.
redlnx-core RAW decode, EXIF, thumbnails, the raw_processor that unpacks the sensor data.
redlnx-render Develop operators and the render / export pipeline. RAW and XMP to JPEG, WebP, AVIF, TIFF.
redlnx-engine Orchestration: the processing pipeline, culling, scoring, profiling, the adaptive style model.
redlnx-xmp XMP sidecar read and write, the format Lightroom-oriented workflows speak.
redlnx-lightroom .lrcat catalog parsing. Reads the Lightroom SQLite catalog directly.
redlnx-ml The ONNX runtime layer and model loading, including the provider fallback chain.
redlnx-app The Tauri 2 desktop shell and the thin command layer. Real logic lives in the crates above.

[ Local AI Runtime ]

Inference runs through ONNX on your own hardware. There is no inference server and no cloud queue. The runtime picks the fastest execution provider it can actually use and falls back, in order, until it reaches the CPU.

PROVIDER PLATFORM NOTE
CUDA NVIDIA, Windows Used when the NVIDIA runtime is present and compatible.
DirectML Windows GPU acceleration through the Windows ML layer.
Metal / CoreML macOS Apple-silicon and Mac GPU path.
WebGPU / Vulkan Linux GPU compute through the WebGPU execution provider on a Vulkan backend.
CPU Everywhere The honest floor. Always available, correct, slower.

The fallback is honest. A GPU provider that registers but cannot run a given operator does not silently mislabel a CPU run as accelerated; the work falls through to the CPU, correct and slower, and is reported as such.

[ RAW + Colour Pipeline ]

RedLnx owns its own RAW path. The heart of it is one seam: the conversion from camera-native linear light to a neutral sRGB-linear working space, before any look is applied. Operators run in that space; output encoders sit at the end.

The seam

Sensor data is unpacked, demosaiced to camera-linear RGB, then mapped through the camera colour matrix into sRGB-linear. Keeping that seam explicit is what lets the develop operators, and a future in-pipeline denoise step, work on clean linear data rather than on an already-cooked image.

Demosaic (in progress)

The demosaic stage is a faithful, line-by-line port of LibRaw, and it is not finished. The current state:

Further LibRaw stages (pre-demosaic CFA cleanup, highlight reconstruction) are scaffolded but not yet wired into the default render. We do not claim a complete in-house RAW processor. That is roadmap work, stated as roadmap work.

Tone map

After the colour conversion, a Timothy Lottes tone curve maps linear light into a neutral base look. Neutral is the point: it is a faithful base to build a style on, not a baked-in aesthetic. Looks are applied on top, learned from your own edits.

Output

The export side encodes to JPEG, WebP, and TIFF, plus AVIF behind a build-time cargo feature (its encoder needs libaom / libdav1d present at build, on Linux). An optional in-pipeline AI denoise step exists at the camera-linear seam; it is opt-in, off unless explicitly enabled, and not something every release necessarily turns on.

[ LOCAL / AUDITABLE / AGPL ]

No network path in the editing flow.

The cull, develop, render, and inference paths do not contact a network. There is no telemetry, no analytics, no upload path, no account. Your catalog, faces, coordinates, and edit history stay on your disk.

The only outbound connections live in clearly bounded places: checking for and fetching releases or runtime components from the settings flow, and talking to a local model endpoint you run yourself for optional dataset tooling. None of it touches your photos, and none of it runs while you edit.

The whole thing is AGPL-3.0. A corporation that wraps RedLnx into a proprietary cloud service has to release the entire stack under the same terms. The license is the doctrine, written in legal code.

Do not take any of this on faith. Read the code.