Port70: Async Gopher Protocol Client Library
Port70 is an asynchronous, object-oriented, fully type-hinted client library for the Gopher protocol (RFC 1436 / RFC 4266). It is designed to target Python 3.12 and later, relying entirely on the Python standard library.
Features of the library:
- Asynchronous throughout: Built on top of standard
asynciofor non-blocking I/O. - Strictly typed: Complete type safety utilising modern Python standards, strictly avoiding
Any. - RFC 1436 & RFC 4266 Compliant: Full support for standard Gopher item types, selectors, search queries, and URIs.
- GopherURI representation: Powerful object-oriented representation to parse, validate, and manipulate Gopher URIs and query target strings.
- Zero dependencies: Relies only on Python's standard library.
- CLI utility: Includes a command-line interface out of the box.
Installation
You can install Port70 in your environment. The recommended tool for modern Python projects is uv, but standard pip is also fully supported.
Using uv
To add Port70 to your project as a dependency:
uv add port70
To install Port70 directly into your active virtual environment:
uv pip install port70
To run the Port70 command-line interface without installing it globally:
uvx port70 gopher://gopher.floodgap.com/
Using pip
To install Port70 from PyPI using standard packaging tools:
pip install port70