# NOTICE

## Derivation

`pypstreader` is a pure-Python port of the read path of
**[microsoft/outlook-pst-rs](https://github.com/microsoft/outlook-pst-rs)** —
"Outlook PST Store Provider in Rust", a clean-room implementation of the
[MS-PST] open specification.

    Copyright (c) Microsoft Corporation.
    Licensed under the MIT License.

The MIT License expressly permits modification, sublicensing and distribution,
and a translation into another language is a modification. This notice, and
Microsoft's copyright line in LICENSE, are the condition attached to that
permission: **they travel with every copy of this project.** Do not remove them,
and do not remove the per-module `Ported from:` headers that record which
upstream file each module came from — they are how a reader verifies this
notice is telling the truth.

**Pinned upstream revision:** `cfb721daee538acc50d2bad6faac5ce724f6037d`
(2026-09-14). Recorded in `docs/UPSTREAM.txt` and fetched by
`scripts/get_rust_source.sh`.

## Trademarks

This project is **not** affiliated with, sponsored by, or endorsed by Microsoft
Corporation. "Microsoft", "Outlook" and "Windows" are trademarks of Microsoft
Corporation; upstream's own README reserves them, and nothing here grants a
licence to them. The project is named `pypstreader`, and any user-visible string that
would imply Microsoft authorship or endorsement is a bug.

## Test fixture

`tests/fixtures/Empty.pst` is copied verbatim from
`crates/pst/examples/Empty.pst` in the upstream repository, at the revision
pinned above. It is covered by the same MIT licence and the same Microsoft
copyright, and it is redistributed here under that grant. It contains no mail.

## Test fixture corpus

`tests/fixtures/public/` holds redistributable test stores, each pinned by
SHA-256 in `MANIFEST.sha256` and documented with source, commit and licence in
the README there (ADR-0004). None ships in the package. Their licences:

- **Apache License 2.0** — `pstsdk-*.pst` (5 files): from the Microsoft PST
  File Format SDK, Copyright (c) Microsoft Corporation, via the
  enrondata/pstsdk mirror; `tika-variousBodyTypes.pst`: from Apache Tika,
  Copyright (c) The Apache Software Foundation; `javalibpst-dist-list.pst`:
  from java-libpst (Richard Johnson), under the Apache-2.0 option of its
  dual licence. The licence text is at
  `tests/fixtures/public/LICENSES/Apache-2.0.txt`, as §4 of that licence
  requires; Tika's NOTICE attributions are at `LICENSES/NOTICE-tika.txt`
  (§4(d)).
- **MIT** — `pstd-inline-cid.pst`: Copyright (c) 2026 andrew3stedall
  (PSTD), a synthetic store generated with EMLtoPST (MIT). Text at
  `tests/fixtures/public/LICENSES/MIT-PSTD.txt`.
- **MIT (this project)** — `synth-basics.pst`: authored here, generated
  with EMLtoPST (MIT, https://github.com/igrbtn/EMLtoPST, pinned and patched
  per `docs/FIXTURE-TOOLS.txt`). EMLtoPST is a fixture-build tool only: it is
  fetched at build time, never vendored, imported or shipped, and its output
  is our own data. Its author's MIT statement is acknowledged here as a
  courtesy.

Together with `Empty.pst` these are the only mail stores that may be
committed, and only through the manifest procedure. See the first block of
`.gitignore`.

## The specification

[MS-PST] is published by Microsoft as an Open Specification. Its Intellectual
Property Rights Notice permits copying the documentation "in order to develop
implementations of the technologies that are described in this documentation",
which is what this project does.

That same notice is explicit that **it grants no patent licence**: *"Microsoft
has patents that might cover your implementations… Neither this notice nor
Microsoft's delivery of this documentation grants any licenses under those
patents."* It points instead to the Microsoft Open Specification Promise and
the Microsoft Community Promise as what may cover a given document.

This is not a risk this port creates or can resolve. It is the identical
posture under which `libpff` (2008–), `java-libpst`, `go-pst` and Microsoft's
own Rust crate have all operated. It is recorded here so that it is a known
condition rather than a discovery. See `docs/adr/0002-attribution-and-patent-posture.md`.

- Specification: https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-pst/141923d5-15ab-4ef1-a524-6dce75aae546
- Open Specification Promise: https://go.microsoft.com/fwlink/?LinkId=214445
