LEGAL NOTICE
============

rar-rs is an independent Rust implementation of the RAR archive format, built
for software conservancy, interoperability and education. It is not affiliated
with, endorsed by, or connected to RARLAB, and it contains no code from
RARLAB's proprietary `unrar`. Archive structures are implemented from public
format descriptions and the independent open-source references credited below.

License
-------

Original contributions are copyright (c) 2025 librar contributors and
(c) 2026 yjdyamv, licensed under BSD-2-Clause (full text: LICENSE).
Third-party portions keep their own terms as credited and inventoried below.

Third-party portions
--------------------

libarchive RAR5 reader (BSD-2-Clause)
  The RAR5 LZSS+Huffman codec (crates/rar/src/codec/modern/lzss_huff/) was
  implemented from the public RAR format and from analysis of libarchive's
  `archive_read_support_format_rar5.c` by Grzegorz Antoniak (2018). It is not
  copied from proprietary RARLAB source.

rars (MIT OR Apache-2.0)
  Ported from https://github.com/bitplane/rars at revision `c08a17b`: the RAR5
  recovery-record codec (recovery/rar50/), BLAKE2sp (format/rar5/blake2sp.rs),
  the RAR5 key-derivation and hash-key MAC patterns (crypto/rar50.rs), the x86
  filter scan (codec/common/filters.rs), the BT4 match finder
  (codec/common/match_finder.rs), the optimal parse and block splitter, the
  E8/E8E9 normalization, and the RAR 3.x/4.x, 2.x and 1.5 member decoders.
  Every in-tree port states MIT OR Apache-2.0 in its own header: the
  expression revision `c08a17b` declared and crates.io lists for every
  published release. (An upstream COPYING file read "WTFPL with 1 extra
  clause" for a few weeks in 2026; it never appeared in that project's
  workspace metadata or in a release, and was replaced by Apache-2.0. No file
  here claims WTFPL.)

smart-archive-rar (BSD-2-Clause)
  The napi-rs binding under crates/rar-napi (Node `.node` addons and
  wasm32-wasip1-threads) originates from yjdyamv/smart-archive-rar. The
  napi-rs and emnapi machinery is third-party and carries its own licenses. No
  npm package is published: CI builds the artifacts for GitHub Releases.

test fixtures
  crates/rar/tests/fixtures/{rar13,rar40} contain archive files copied from
  the rars test corpus. They are test inputs, not source code, and remain
  subject to the terms of that corpus.

RAR/WinRAR tools
  Used only as black-box interoperability references for testing (set
  SA_OFFICIAL_RAR / SA_OFFICIAL_UNRAR to run the `official_*` interop suite).
  No RARLAB binary or source is included or used as source code.

The per-file inventory behind this summary is THIRD_PARTY_LICENSES.md.

Trademarks
----------

RAR and WinRAR are registered trademarks of Alexander Roshal and RARLAB.

Scope and limitations
---------------------

  * Not a replacement for RARLAB's archiver, and not an attempt to reproduce
    it: the proprietary encoder's optimal parsing, context modelling and PPMd
    are out of scope, so output is usually larger than the native tool's.

  * Formats: RAR5/RAR7 read and write; RAR 1.5-4.x read; RAR 1.5 / 2.x / 4.x
    creation (`-ma15` / `-ma2` / `-ma4`). Intermediate RAR2.6/RAR3.x members
    (v26/v36) are written as their base versions (v20/v29). Legacy formats have
    feature-specific limits, documented by the library and the CLI.

  * Intended for software conservancy, interoperability and education: it makes
    the archive format readable and writable without proprietary binaries.
