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.3.tar.gz
(19.9 kB
view details)
Built Distribution
File details
Details for the file wisp_python-0.4.3.tar.gz
.
File metadata
- Download URL: wisp_python-0.4.3.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07385d089c2a556c676b441bd4ec7b836c9390d4204a9a2f071368f6457bb6dc |
|
MD5 | 1a6ce6f3e3824f19a420ffb28c9204de |
|
BLAKE2b-256 | f0fd62729b9437c11914c1eda4fde9b66aada14a74db80f833e9f78b78d76948 |
File details
Details for the file wisp_python-0.4.3-py3-none-any.whl
.
File metadata
- Download URL: wisp_python-0.4.3-py3-none-any.whl
- Upload date:
- Size: 20.4 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 | 2b041023b5b0bae24d875e208f63e8a254fa257e9ef497e6f40743c7baa83df4 |
|
MD5 | 2d92c9f70379fce8ec4430f8c4044f36 |
|
BLAKE2b-256 | d8f30a105f6d11ae59678b1ae3ae9518028268c83dd2d5eb018ee74b1e22c3a0 |