Skip to content

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 asyncio for 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