==========================================
ocfl-py - An OCFL implementation in Python
==========================================

``ocfl-py`` is a Python reference implementation of the Oxford Common File Layout
(OCFL). It provides the `ocfl` module and a set of command-line tools
that for validating and manipulating OCFL Objects and OCFL Storage Roots. The
code implements the current `OCFL specification v1.1
<https://ocfl.io/1.1/spec/>`_ while retaining support for `v1.0
<https://ocfl.io/1.0/spec/>`_. See `implementation status for errors and warnings
<https://github.com/zimeon/ocfl-py/blob/main/docs/validation_status.md>`_ for
details of validator support.

See `ocfl-py documentation
<https://oclf-py.readthedocs.io/en/latest/index.html>`_  on ReadTheDocs.

Contributing
------------

Bug reports welcome as `github issues
<https://github.com/zimeon/ocfl-py/issues>`_.

See `CONTRIBUTING.md
<https://github.com/zimeon/ocfl-py/blob/main/CONTRIBUTING.md>`_
for guidelines for contributing.

Other Python OCFL Code
----------------------

See also `OCFL-Core
<https://github.com/inveniosoftware/ocflcore>`_ which is another Python implementation
of OCFL, designed to support the InvenioRDM repository, and `other OCFL implementations
<https://github.com/OCFL/spec/wiki/Implementations>`_.

Copyright and License
---------------------

Copyright 2018--2026 Simeon Warner and `contributors
<https://github.com/zimeon/ocfl-py/graphs/contributors>`_.
Provided under the MIT license, see `LICENSE.txt
<https://github.com/zimeon/ocfl-py/blob/main/LICENSE.txt>`_.
