lensfun 0.7.0

Pure-Rust port of LensFun: camera lens correction (distortion, TCA, vignetting) without C dependencies
Documentation
lensfun-rs
==========

Pure-Rust port of LensFun, the camera lens correction library.

Code license: GNU Lesser General Public License v3.0 or later (LGPL-3.0-or-later).
See LICENSE-LGPL-3.0 (and LICENSE-GPL-3.0, which the LGPL incorporates by reference).


Upstream
--------

This crate is a derivative work of LensFun (https://github.com/lensfun/lensfun)
and inherits its license. The upstream C++ code, the database schema, and the
test suite that serves as our executable spec are the work of the LensFun
contributors:

  Copyright (C) 2007-2024 Andrew Zabolotny <zap@homelink.ru>
  Copyright (C) 2014      Roman Lebedev (SSE2 paths — not currently ported)
  Copyright (C) 2010      Klaus Post (database, calibration data)
  And many other contributors — see the upstream `git log` for the full list.

The Rust port is by:

  Copyright (C) 2026      David Veszelovszki <veszelovszki@gmail.com>


Bundled lens database
---------------------

The XML files under `data/db/` are the upstream LensFun lens calibration
database, distributed under the **Creative Commons Attribution-ShareAlike 3.0
Unported** license (CC-BY-SA 3.0):

  https://creativecommons.org/licenses/by-sa/3.0/

The database is the collective work of the LensFun community. Modifications to
the bundled `*.xml` files must be published under the same license. The Rust
port itself does not modify the database — it only reads it.


Third-party Rust crates
-----------------------

This crate depends on the following third-party Rust crates. Their licenses are
in the `cargo deny` allow list (see `deny.toml`) and verified by CI:

  flate2          MIT OR Apache-2.0
  regex           MIT OR Apache-2.0
  roxmltree       MIT OR Apache-2.0
  thiserror       MIT OR Apache-2.0

Dev-only:

  approx          Apache-2.0
  proptest        MIT OR Apache-2.0


Excluded upstream code
----------------------

The following upstream files are **not** ported and **not** linked into this
crate. They live under different licenses and would taint the LGPL crate:

  apps/                — GPL-3.0 (lenstool CLI etc.)
  libs/lensfun/mod-coord-sse.cpp        — SSE; deferred to a future v1.x port
  libs/lensfun/mod-color-sse*.cpp       — SSE; deferred to a future v1.x port

The SSE files are LGPL just like the rest, but they're skipped for v1 per the
project spec (scalar Rust first; SIMD via `std::simd` or `wide` later).