Utility libraries
-----------------

Above Invenio modules dependent on a number of smaller utility libraries we
have developed to take care of e.g. identifier normalization, DataCite/Dublin
Core metadata generation, testing and citation formatting.

- `babel-edtf <https://babel-edtf.readthedocs.io>`_
    - Localization for EDTF (Extended Date Time Format) date strings.
- `base32-lib <https://base32-lib.readthedocs.io>`_
    - Library to generate, encode and decode random base32 strings.
- `citeproc-py-styles <https://citeproc-py-styles.readthedocs.io>`_
    - Citation Style Language (CSL) style files packaged as a Python module
- `datacite <https://datacite.readthedocs.io>`_
    - Python library for generating DataCite XML from Python dictionaries and
      registering DOIs with the DataCite DOI registration service.
- `dcxml <https://dcxml.readthedocs.io>`_
    - Python library for generating Dublin Core XML from Python dictionaries.
- `dictdiffer <https://dictdiffer.readthedocs.io>`_
    - Python library for diffing/patching/merging JSON documents.
- `docker-services-cli <https://docker-services-cli.readthedocs.io>`_
    - Infrastructure services for local and CI tests.
- `dojson <https://dojson.readthedocs.io>`_
    - JSON to JSON rule-based transformation library.
- `domapping <https://domapping.readthedocs.io/en/latest/>`_
    - Package generating elasticsearch mapping from jsonschemas.
- `doschema <https://doschema.readthedocs.io/en/latest/>`_
    - Utilities to work with JSON Schemas.
- `flask-breadcrumbs <https://flask-breadcrumbs.readthedocs.io>`_
    - Flask extension for managing breadcrumbs in web applications.
- `flask-celeryext <https://flask-celeryext.readthedocs.io>`_
    - Celery integration for Flask.
- `flask-cli <https://flask-cli.readthedocs.io>`_
    - Flask-CLI is a backport of Flask 1.0's new click integration to Flask.
- `flask-iiif <https://flask-iiif.readthedocs.io>`_
    - IIIF server for Flask.
- `flask-kvsessions <https://pythonhosted.org/Flask-KVSession/>`_
    - A drop-in replacement for Flask's session handling using server-side sessions.
- `flask-menu <https://flask-menu.readthedocs.io>`_
    - Menu generation support for Flask.
- `flask-resources <https://flask-resources.readthedocs.io>`_
    - REST APIs for Flask
- `flask-sitemap <https://flask-sitemap.readthedocs.io>`_
    - Sitemaps XML generation for Flask.
- `flask-sso <https://flask-sso.readthedocs.io>`_
    - Flask Single-Sign-On Extension
- `flask-webpack <https://flask-webpack.readthedocs.io>`_
    - Webpack integration for Flask.
- `helm-invenio <https://helm-invenio.readthedocs.io>`_
    - Helm charts for deploying an Invenio instance
- `idutils <https://idutils.readthedocs.io>`_
    - Persistent identifier validation, identification and normalization.
- `intbitset <https://intbitset.readthedocs.io>`_
    - Python C-based extension implementing fast integer bit sets
- `jsonresolver <https://jsonresolver.readthedocs.io>`_
    - JSONRef resolver with support for local plugins.
- `marshmallow-utils <https://marshmallow-utils.readthedocs.io>`_
    - Utilities for Marshmallow.
- `pynpm <https://pynpm.readthedocs.io>`_
    - NPM integration for Python.
- `pywebpack <https://pywebpack.readthedocs.io>`_
    - Webpack integration library for Python.
- `requirements-builder <https://requirements-builder.readthedocs.io>`_
    - Python CLI tool for testing multiple versions of different Python
      libraries in you continuous integration system.
- `xrootdpyfs <https://xrootdpyfs.readthedocs.io>`_
    - PyFilesystem plugin adding XRootD support.
