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 supportAbility 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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbe5e50382c0735b686aad58d4e0e7a1a76c4987710a369ebe8b7a4c7108771b |
|
MD5 | 41efb22c1100dcd6b3f666131bf48f83 |
|
BLAKE2b-256 | ed1a4106e6be14ada718444368b6eabbb2b3d01c99ab508f2058d94c8d16ff79 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d0bd7da85632554ed565944e4a7f3bd8aa8bfb1aa0e2a2efc1be206790b4ff6 |
|
MD5 | 6af51a680e1f243c867e474a4a02ee64 |
|
BLAKE2b-256 | d13a29fff3738edbe8b77f7e4cd1a24c00daa2b5231828b38ff4b10199f50322 |