This document provides an overview of Event Horizon’s third-party dependencies and their licenses.
Event Horizon is licensed under the GNU General Public License v3.0 (GPL-3.0). This document lists all major third-party dependencies and their respective licenses.
Understanding the licenses of our dependencies is important because:
All dependencies used in Event Horizon are compatible with GPL-3.0. The following license types are included:
The GPL-3.0 license allows:
The GPL-3.0 license does NOT allow:
These are the essential Python packages Event Horizon depends on:
| Package | Version | License | Purpose |
|---|---|---|---|
| Django | ≥6.0 | BSD-3-Clause | Web framework |
| django-allauth | ≥65.13.1 | MIT | Authentication and social auth |
| django-oauth-toolkit | latest | BSD-2-Clause | OAuth2 provider |
| djangorestframework | latest | BSD-3-Clause | REST API framework |
| django-rest-knox | ≥5.0.2 | MIT | Token authentication |
| django-cors-headers | ≥4.9.0 | MIT | CORS handling |
| django-storages | ≥1.14.4 | BSD-3-Clause | Storage backends |
| django-filter | latest | BSD-3-Clause | Filtering for DRF |
| Pillow | ≥12.0.0 | HPND | Image processing |
| psycopg2 | ≥2.9.11 | LGPL-3.0 | PostgreSQL adapter |
| boto3 | ≥1.35.0 | Apache-2.0 | AWS SDK for S3 storage |
| requests | ≥2.31.0 | Apache-2.0 | HTTP library |
| gunicorn | ≥21.2.0 | MIT | WSGI HTTP server |
| whitenoise | ≥6.6.0 | MIT | Static file serving |
| python-dotenv | ≥1.2.1 | BSD-3-Clause | Environment variable management |
| cryptography | ≥46.0.3 | Apache-2.0/BSD | Cryptographic operations |
| dj-database-url | ≥3.0.1 | BSD-2-Clause | Database URL parsing |
| markdown | latest | BSD-3-Clause | Markdown rendering |
| tzdata | ≥2025.2 | Apache-2.0 | Timezone data |
The 3-Clause BSD License is a permissive license that allows:
Requirements:
The MIT License is a very permissive license that allows:
Requirements:
The Apache License 2.0 is a permissive license that allows:
Requirements:
The GNU Lesser General Public License allows:
Requirements:
Note: LGPL allows linking from non-GPL software, making it more permissive than GPL while still being copyleft.
The Historical Permission Notice and Disclaimer is a permissive license similar to BSD that allows:
Requirements:
These dependencies are only used during development and testing:
| Package | Version | License | Purpose |
|---|---|---|---|
| pytest | ≥7.4.0 | MIT | Testing framework |
| pytest-django | ≥4.5.0 | BSD-3-Clause | Django plugin for pytest |
Frontend dependencies managed via npm:
| Package | License | Purpose |
|---|---|---|
| tailwindcss | MIT | CSS framework |
| @tailwindcss/forms | MIT | Form styling |
| autoprefixer | MIT | CSS vendor prefixing |
| postcss | MIT | CSS processing |
All JavaScript dependencies use the MIT License, which is GPL-compatible.
Transitive dependencies are packages that our direct dependencies rely on. For example:
asgiref and sqlparsebotocore and jmespathOur direct dependencies (listed above) have their own dependencies, which may have different licenses. However:
Our direct dependencies handle compatibility: Package maintainers ensure their dependencies are compatible with their own license.
Verification: We periodically audit transitive dependencies to ensure no incompatible licenses are introduced.
Common transitive licenses:
Event Horizon (GPL-3.0)
├── Django (BSD-3-Clause)
│ ├── asgiref (BSD-3-Clause)
│ ├── sqlparse (BSD-3-Clause)
│ └── tzdata (Apache-2.0)
├── boto3 (Apache-2.0)
│ ├── botocore (Apache-2.0)
│ ├── jmespath (MIT)
│ └── s3transfer (Apache-2.0)
└── Pillow (HPND)
└── (C extensions, same license)
You can verify the licenses of all installed dependencies using these tools:
# Install pip-licenses
pip install pip-licenses
# Show all licenses
pip-licenses
# Export to CSV
pip-licenses --format=csv --output-file=licenses.csv
# Show only certain formats
pip-licenses --format=markdown
# Filter by license
pip-licenses --filter-strings="MIT;BSD;Apache"
# Check a specific package
pip show django
# Output includes license information:
# Name: Django
# Version: 6.0
# License: BSD-3-Clause
# Show dependency tree
uv pip list --format=tree
# Show package details
uv pip show django
When updating dependencies:
# Before updating
pip-licenses --format=csv --output-file=licenses-before.csv
# Update dependencies
uv sync --upgrade
# After updating
pip-licenses --format=csv --output-file=licenses-after.csv
# Compare
diff licenses-before.csv licenses-after.csv
When auditing dependencies, be cautious of:
Consider setting up automated license checking in CI/CD:
# In your CI pipeline
pip install pip-licenses
pip-licenses --fail-on="GPL-2.0;Proprietary" # Fails if incompatible licenses found
When you use Event Horizon:
When contributing to Event Horizon:
If you distribute Event Horizon:
If you have questions about:
This document should be updated whenever:
Last Updated: December 21, 2025
Note: While we strive to keep this document accurate and up-to-date, the license information in each package’s own metadata is authoritative. Always verify license information when in doubt.