Dependencies and Licenses
Overview
This page provides an overview of all dependencies required by SHARPIE and their licensing terms. Understanding these licenses is important for researchers who wish to use SHARPIE, especially if you plan to distribute modified versions or incorporate SHARPIE into commercial products.
Python (PIP) Dependencies
Python Dependencies License Overview
This file lists all Python package dependencies and their licenses.
To regenerate this file after changing requirements, run:
python scripts/generate_dependencies.py
Name |
Version |
License |
|---|---|---|
Django |
5.2.15 |
BSD-3-Clause |
PyYAML |
6.0.3 |
MIT License |
Sphinx |
7.1.2 |
BSD License |
Twisted |
26.4.0 |
MIT License |
aiohttp |
3.14.1 |
Apache-2.0 AND MIT |
channels |
4.3.2 |
BSD License |
channels_redis |
4.3.0 |
BSD |
crispy-bootstrap4 |
2026.2 |
MIT |
django-crispy-forms |
2.6 |
MIT |
django-environ |
0.13.0 |
MIT |
django-extensions |
4.1 |
MIT |
myst-parser |
3.0.1 |
MIT License |
opencv-python-headless |
4.13.0.92 |
Apache Software License |
pydot |
4.0.1 |
MIT |
pygraphviz |
1.14 |
BSD License |
redis |
7.4.1 |
MIT |
sphinx-rtd-theme |
1.3.0rc1 |
MIT License |
websockets |
16.0 |
BSD-3-Clause |
System Dependencies
The following system-level dependencies are required:
- Redis Server
License: BSD-3-Clause
Purpose: Required by
channels_redisfor WebSocket communication between Django channels layers.Installation on Ubuntu/Debian:
sudo apt-get install redis-server
Installation on macOS (Homebrew):
brew install redis
- Graphviz
License: Common Public License (EPL-1.0)
Purpose: Required by
pygraphvizfor generating data model diagrams viadjango-extensions.Installation on Ubuntu/Debian:
sudo apt-get install graphviz libgraphviz-dev
Installation on macOS (Homebrew):
brew install graphviz
License Compatibility Notes
- Permissive Licenses (MIT, BSD, Apache)
These licenses are fully compatible with Apache 2.0 and impose minimal requirements. You can freely use, modify, and distribute SHARPIE with dependencies under these licenses.
- LGPL (Lesser General Public License)
Can be used as a library dependency without affecting your project’s license. You can link to LGPL libraries without releasing your code under LGPL.
- GPL/AGPL (General Public License / Affero GPL)
If GPL-licensed dependencies are included and distributed, the combined work would need to comply with GPL terms. This could affect distribution rights. The license report flags these cases for awareness. Note that using GPL software as a service (without distribution) typically does not trigger GPL requirements for your own code.