Serve neo4j-browser with Starlette and uvicorn (the optional browser extra) instead of a hand-written HTTP server, and handle Bolt over WebSocket with the websockets library's Sans-I/O protocol. Rename Dockerfile, .dockerignore and docker/ to Containerfile, .containerignore and container/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.8 KiB
Third-party notices
peo's own code (the peo/, container/ and tests/ directories, the
Containerfile and pyproject.toml) is licensed under the GNU General Public
License v3.0 or later; see LICENSE.
The container image built from this repository also contains the third-party
software below. None of it is stored in this repository: it is downloaded when
the image is built. Inside the image, license texts are collected under
/usr/share/doc/peo/.
| Component | License | Copyright | License text in the image |
|---|---|---|---|
neo4j-browser, built unmodified from the commit pinned in the Containerfile |
GPL-3.0-or-later | Neo4j Sweden AB | /usr/share/doc/peo/neo4j-browser/ (LICENSE, NOTICE.txt) |
| JavaScript libraries bundled into neo4j-browser | various (MIT, Apache-2.0, BSD, ...) | their respective authors | /usr/share/doc/peo/neo4j-browser/LICENSES.txt |
Apache AGE, from the apache/age base image |
Apache-2.0 | The Apache Software Foundation; portions Bitnine Co., Ltd. | /usr/share/doc/peo/apache-age/ (LICENSE, NOTICE) |
PostgreSQL, from the apache/age base image |
PostgreSQL License | The PostgreSQL Global Development Group, The Regents of the University of California | /usr/share/doc/postgresql-18/copyright |
Debian GNU/Linux base system and packages, including Python 3 and python3-psycopg (LGPL-3.0) |
various | their respective authors | /usr/share/doc/<package>/copyright |
Python packages peo depends on, installed from PyPI: websockets (BSD-3-Clause), starlette (BSD-3-Clause), uvicorn (BSD-3-Clause) and their dependencies |
various (BSD-3-Clause, MIT, PSF-2.0) | their respective authors | *.dist-info/ under /opt/peo/venv/lib/python3*/site-packages/, or /usr/share/doc/peo/peo-python-licenses/ for packages whose wheel lacks a license file |
| pgAdmin 4, installed from PyPI | PostgreSQL License | The pgAdmin Development Team | /opt/pgadmin/app/LICENSE |
Python packages pgAdmin depends on, and gunicorn (MIT) |
various | their respective authors | *.dist-info/ under /opt/pgadmin/lib/python3*/site-packages/, or /usr/share/doc/peo/pgadmin-python-licenses/ for packages whose wheel lacks a license file |
Source code
- neo4j-browser is licensed under the GPL, which requires the complete
corresponding source to accompany the built application. The image contains
it as
/usr/share/doc/peo/neo4j-browser/neo4j-browser-source.tar.gz, an archive of the exact commit that was built. Its dependencies are pinned by theyarn.lockinside that archive, and the build steps are in this repository'sContainerfile. - peo itself ships as Python source code in the
/opt/peo/venv/virtual environment, next to the Python packages it depends on. This repository has the rest. - Debian packages: source is available from sources.debian.org and the Debian archive.
Interoperability
The peo bridge implements the Bolt protocol and PackStream format from their
public specifications so that unmodified Neo4j clients can connect. It contains
no source code from Neo4j. To work with those clients it reports itself as
"Neo4j" with a Neo4j version number, and it recognises the exact query strings
that neo4j-browser sends; tests/smoke_test.py repeats some of those query
strings to check compatibility.
Trademarks
Neo4j is a trademark of Neo4j, Inc. PostgreSQL is a trademark of the PostgreSQL Community Association. Apache, Apache AGE and the Apache feather logo are trademarks of The Apache Software Foundation. pgAdmin is a trademark of the pgAdmin Development Team. peo is not affiliated with or endorsed by any of them; the names are used only to identify the software it works with.