Skip to main content

An implementation of a Wisp proxy server in Python

Project description

Python Wisp Server

This is an implementation of a Wisp server, written in Python. It follows the Wisp v1 spec completely, including support for UDP connections.

Installation:

Install From Source:

Clone this repository and cd into it, then run the following commands:

python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .

Install From PyPI:

Run the following command to install this program:

pip3 install wisp-python

Running the Server:

To start the server, run python3 -m wisp.server. The program accepts the following arguments:

usage: wisp-server-python [-h] [--host HOST] [--port PORT] [--static STATIC] [--limits] [--bandwidth BANDWIDTH] [--connections CONNECTIONS] [--window WINDOW] [--allow-loopback] [--allow-private]

A Wisp server implementation, written in Python (v0.4.1)

options:
  -h, --help            show this help message and exit
  --host HOST           The hostname the server will listen on.
  --port PORT           The TCP port the server will listen on.
  --static STATIC       Where static files are served from.
  --limits              Enable rate limits.
  --bandwidth BANDWIDTH
                        Bandwidth limit per IP, in kilobytes per second.
  --connections CONNECTIONS
                        New connections limit per IP.
  --window WINDOW       Fixed window length for rate limits, in seconds.
  --allow-loopback      Allow connections to loopback IP addresses.
  --allow-private       Allow connections to private IP addresses.

Roadmap:

  • Rate limits
  • JSON based config files
  • UDP support
  • Ability to block local addresses

Copyright:

This repository is licensed under the GNU AGPL v3.

Copyright Notice:

wisp-server-python: a Wisp server implementation written in Python
Copyright (C) 2024 Mercury Workshop

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wisp_python-0.4.1.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

wisp_python-0.4.1-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file wisp_python-0.4.1.tar.gz.

File metadata

  • Download URL: wisp_python-0.4.1.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.2

File hashes

Hashes for wisp_python-0.4.1.tar.gz
Algorithm Hash digest
SHA256 fbe5e50382c0735b686aad58d4e0e7a1a76c4987710a369ebe8b7a4c7108771b
MD5 41efb22c1100dcd6b3f666131bf48f83
BLAKE2b-256 ed1a4106e6be14ada718444368b6eabbb2b3d01c99ab508f2058d94c8d16ff79

See more details on using hashes here.

File details

Details for the file wisp_python-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: wisp_python-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.2

File hashes

Hashes for wisp_python-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7d0bd7da85632554ed565944e4a7f3bd8aa8bfb1aa0e2a2efc1be206790b4ff6
MD5 6af51a680e1f243c867e474a4a02ee64
BLAKE2b-256 d13a29fff3738edbe8b77f7e4cd1a24c00daa2b5231828b38ff4b10199f50322

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page