LICENSING.md 2.3 KB

Licensing

chattolib uses per-file SPDX license metadata following the REUSE specification. The canonical machine-readable licence boundary is in REUSE.toml.

Default: MPL-2.0

The library's own code — src/chattolib/*.py (except the _pb/ subtree), tests/, scripts/, and repository documentation — is licensed under the Mozilla Public License 2.0 (MPL-2.0). See LICENSE for the full text.

MPL-2.0 is a weak, file-level copyleft:

  • You can freely use, distribute, and embed chattolib in commercial or proprietary software.
  • If you modify a file of chattolib itself and distribute the modified version, the modified file must be released under MPL-2.0.
  • New files you add alongside chattolib (adapters, plugins, your own application code) can be under any licence you like.

MPL-2.0 explicitly permits combination with GPL/LGPL/AGPL code via its §3.3 Secondary License mechanism.

Apache-2.0 carve-outs

The following paths ship under Apache License 2.0 (Apache-2.0) — they are vendored from upstream projects that publish under Apache-2.0 by choice:

  • proto/chatto/** — Chatto's public .proto sources, vendored from chattocorp/chatto. Chatto's own REUSE.toml places these files under Apache-2.0 precisely so that third-party client libraries like chattolib can be built with a licence of their own choice.
  • src/chattolib/_pb/chatto/** — the generated Python protobuf and Connect bindings derived from those .proto files. Derivative works of Apache-2.0 input remain Apache-2.0.
  • proto/buf/validate/** and src/chattolib/_pb/buf/** — vendored from bufbuild/protovalidate, also Apache-2.0 upstream.

Full licence texts live in LICENSES/.

Historical MIT releases

chattolib versions 0.0.1 through 0.4.9 were released under the MIT License. Those releases remain MIT-licensed forever on PyPI; anyone who obtained them under MIT keeps those rights on those versions. The MPL-2.0 relicence applies to newly published releases only.