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.2.tar.gz
(19.8 kB
view details)
Built Distribution
File details
Details for the file wisp_python-0.4.2.tar.gz
.
File metadata
- Download URL: wisp_python-0.4.2.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4373520215e401c43d6511bc71dfdf2a26a377b05c9a33caa781e240f723250 |
|
MD5 | 7500a1d5f2a754ef5b49f8876b18a0d6 |
|
BLAKE2b-256 | 65f19a2ece9382d582aaad300160005621a88cbc98cb63f79ac8269183d2df29 |
File details
Details for the file wisp_python-0.4.2-py3-none-any.whl
.
File metadata
- Download URL: wisp_python-0.4.2-py3-none-any.whl
- Upload date:
- Size: 20.3 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 | c5507eb3e499e9b28850ed70f5fc008a6138af048c8ac7c55c6461a7751693ce |
|
MD5 | 70a585b85038d756ee84eb7b4d54c113 |
|
BLAKE2b-256 | 48f5ed0dabd5014c34b433767387eccbd8ed87673ee1ef6b76dc9bd8ebcabef5 |