Skip to content

Drop numcodecs[crc32c] as dependency due to use of LGPL licenseย #3510

@decryptofy

Description

@decryptofy

To whom it may concern,

We noticed that ZarrV3 introduced the following (non-optional) dependency: numcodecs[crc32c]

The Python package crc32c is licensed under LGPL. In general, I consider (L)GPL to be a license that is not well-suited for Python packages and it may create issues with MPL 2.0 which can be incompatible with (L)GPL based on how it is instantiated. Other problematic contexts are, e.g., redistribution of a software with closed-source extensions or plugins, where at least the distributor of the software is at risk of inadvertently making a mistake w.r.t. to having included (L)GPL licensed software. To the best of my knowledge, the exact scope or extent of LGPL within the context of Python is unclear, which is why it should be avoided.

Due to these reasons, I propose to:

  • As a first step, to include numcodecs[crc32c] only as an optional dependency, such that it is convenient to not include crc32c. Note that crc32c itself is only an optional component within numcodec and it appears that numcodecs (without the optional crc32c) could be used instead.
  • As a second step, to potentially drop the dependency on numcodecs altogether, see: a codec simplification planย #3162

Thank you for your attention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions