THIRD-PARTY-LICENSES
====================

The `fovea-io` crate depends on third-party libraries, each under its own
license. All dependencies are under permissive licenses compatible with the
MIT license under which `fovea-io` itself is distributed.

This file documents those licenses and fulfils the attribution requirements
for the dependencies whose licenses require it.

This audit reflects the dependency tree for `fovea-io 0.1.1` built with the
`all-codecs` feature (`png`, `jpeg`, `bmp`). With a narrower feature set,
fewer dependencies apply — see the "Per-feature applicability" section at the
bottom of this file.


================================================================================
Summary of dependency licenses
================================================================================

License (SPDX)                            Crates
----------------------------------------- -------------------------------------
MIT                                       simd-adler32
MIT OR Apache-2.0                         png, jpeg-decoder, flate2, fdeflate,
                                          crc32fast, cfg-if, either, thiserror,
                                          thiserror-impl, rayon, rayon-core,
                                          crossbeam-deque, crossbeam-epoch,
                                          crossbeam-utils, proc-macro2, quote,
                                          syn
MIT/Apache-2.0                            bitflags
(MIT OR Apache-2.0) AND IJG               jpeg-encoder
(MIT OR Apache-2.0) AND Unicode-3.0       unicode-ident
0BSD OR MIT OR Apache-2.0                 adler2
MIT OR Zlib OR Apache-2.0                 miniz_oxide

`fovea-io` elects **MIT** from every `OR` expression above for its own
distribution. Each "AND" component carries an additional requirement
documented in the corresponding section below.


================================================================================
IJG License — Independent JPEG Group
================================================================================

Applies to: jpeg-encoder (via quantization tables and algorithmic work
derived from libjpeg / mozjpeg). Only relevant when `fovea-io` is built with
the `jpeg` feature.

Source: https://jpegclub.org/reference/libjpeg-license/

This software is based in part on the work of the Independent JPEG Group.

LICENSE TERMS
=============

1. We don't promise that this software works.  (But if you find any bugs,
   please let us know!)
2. You can use this software for whatever you want.  You don't have to pay us.
3. You may not pretend that you wrote this software.  If you use it in a
   program, you must acknowledge somewhere in your documentation that
   you've used the IJG code.

In legalese:

The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose.  This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.

This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding.
All Rights Reserved except as specified below.

Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.

These conditions apply to any software derived from or based on the IJG code,
not just to the unmodified library.  If you use our work, you ought to
acknowledge us.

Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it.  This software may be referred to only as "the Independent JPEG Group's
software".

We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.


================================================================================
Unicode License V3
================================================================================

Applies to: unicode-ident (transitively, via proc-macro2 → unicode-ident, and
syn → unicode-ident). Used at compile time only by procedural macros; the
crate is not linked into the final runtime binary.

Source: https://www.unicode.org/license.txt

COPYRIGHT AND PERMISSION NOTICE

Copyright (C) 1991-2024 Unicode, Inc.

NOTICE TO USER: Carefully read the following legal agreement. BY
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.

Permission is hereby granted, free of charge, to any person obtaining a
copy of data files and any associated documentation (the "Data Files") or
software and any associated documentation (the "Software") to deal in the
Data Files or Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, and/or sell
copies of the Data Files or Software, and to permit persons to whom the
Data Files or Software are furnished to do so, provided that either (a)
this copyright and permission notice appear with all copies of the Data
Files or Software, or (b) this copyright and permission notice appear in
associated Documentation.

THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
THIRD PARTY RIGHTS.

IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
FILES OR SOFTWARE.

Except as contained in this notice, the name of a copyright holder shall
not be used in advertising or otherwise to promote the sale, use or other
dealings in these Data Files or Software without prior written
authorization of the copyright holder.


================================================================================
MIT License (representative copy)
================================================================================

Applies to: every dependency listed above whose SPDX expression includes
"MIT" (i.e. all of the dependencies — `fovea-io` elects MIT from each `OR`
expression).

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================================================
Per-feature applicability
================================================================================

`fovea-io` ships every codec behind a Cargo feature flag. The set of
third-party dependencies — and therefore the attribution requirements —
depends on which features are enabled:

- `bmp`   — pure Rust, no third-party codec dependencies. Builds with this
            feature alone require no third-party attribution beyond
            `thiserror`'s MIT notice.
- `png`   — pulls `png`, `flate2`, `miniz_oxide`, `adler2`, `crc32fast`,
            `fdeflate`, `simd-adler32`, `bitflags`, `cfg-if`. All
            MIT-compatible; no IJG.
- `jpeg`  — pulls `jpeg-decoder`, `jpeg-encoder`, `rayon` and its
            crossbeam dependencies. **The IJG acknowledgement above is
            required** when this feature is enabled.
- `all-codecs` — equivalent to `bmp + png + jpeg`, so the full table at
                 the top of this file applies.

In every case, `proc-macro2` / `quote` / `syn` / `unicode-ident` are
transitive build-time-only dependencies (via `fovea-derive` and
`thiserror-impl`); they do not appear in the final runtime binary.


================================================================================
Auditing
================================================================================

This file was prepared by reviewing the output of

    cargo tree -p fovea-io --features all-codecs --format "{p} {l}"

against the dependency tree resolved by Cargo at the time of this release.

When dependencies change (a `Cargo.toml` edit that adds, removes, or major-
upgrades a third-party crate), re-run the command above and refresh this
file. A new entry is required only when:

  1. A new transitive crate is introduced, **and**
  2. its license is not already listed in the summary table.

A version bump of an already-listed crate does not require an update unless
the crate's license changes.
