Modern asynchronous Gopher server implemented in Python.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Simon de Vlieger 285fe22666 docs: refer directly to src.tty.cat for image 5 months ago
doc logo: update docs logo to transparent background 5 months ago
gb Start shuffling things around. 2 years ago
test Pytest-ify the protocol test as well. 2 years ago
.flake8 initial 4 years ago
.gitignore Setup a proper gitignore. 3 years ago
.pre-commit-config.yaml Add mypy and pytest to pre-commit. 2 years ago
.travis.yml Update travis. 3 years ago
LICENSE Add the MIT license. 4 years ago
README.md docs: refer directly to src.tty.cat for image 5 months ago
mypy.ini I've reversed my ideas on typing. 2 years ago
poetry.lock Setup a proper pyproject.toml. 3 years ago
pyproject.toml docs: convert README.rst to README.md 5 months ago
setup.cfg Switch from nose to pytest + coverage. 4 years ago

README.md

gb logo, a gopher in a ball

gb

rtd badge license badge black badge

About

gb or gopherball is a gopher server written in Python with the main goals of ease of use and integration. The name gopherball is inspired by a recurring theme in the Calvin & Hobbes comicbooks and a tongue in cheek reference of an alternative to the World Wide Web as we know it today.

Examples

Quick examples to get you running.

gb --mode=implicit . will start a gopher server on 127.0.0.1 port 7070 serving a recursive index of files starting from the current directory.

gb --mode=implicit --magic . will start gb in magic-mode on 127.0.0.1 port 7070. Magic mode will make gb guess at filetypes.

gb --mode=implicit --host="127.1.1.1" --port 1025 . will start gb in implicit mode on the chosen ip and port. Note that using ports under 1024 requires superuser permissions!

Technology

gb is written with the help of Python 3.5 and higher and the Tornado framework for its networking.

Modes

gb has one main mode of operation that is commonly used. More modes are planned for the future.

implicit

Implicit mode serves a directory recursively. Indexes are automatically generated and text files are served to the client. Data files are also supported.

Magic

gb will serve all non-directories as type 9 files, these are non-readable files and most clients will prompt for download. Turning on magic with --magic will let gb try to determine the correct filetypes.

Contributing

The source code for gb lives on GitHub where you can also submit issues and pull requests. It mostly needs help by people with the ability to test in various clients and libraries that might still support the gopher protocol.