klan1/pproxy fork: HTTP/SOCKS4/SOCKS5/Shadowsocks tunnel proxy, Python 3.9+ compatible.
Project description
A maintained fork of pproxy (HTTP/SOCKS4/SOCKS5/Shadowsocks/ShadowsocksR/Redirect/PF/QUIC async tunnel proxy) with two changes:
Python 3.12+ compatibility. Replaces asyncio.get_event_loop() (which raises RuntimeError on Python 3.12+ when no loop is running) with asyncio.get_running_loop() plus a small fallback helper. Works on Python 3.9, 3.10, 3.11, 3.12 and 3.13.
Dropped Python 3.6/3.7 support. Both are end-of-life.
The original library was last released as pproxy 2.7.9 two years ago. This fork keeps the same protocol surface and CLI; it only fixes the runtime crash on modern Python. See CHANGELOG.md for the detailed change list and the upstream commit history for everything else.
QuickStart
$ pip3 install klan1-pproxy
$ pproxy
Serving on :8080 by http,socks4,socks5
^C
Or pin to a specific version:
$ pip3 install 'klan1-pproxy==3.0.0'
Supported protocols
HTTP, HTTP2, HTTP3
SOCKS4, SOCKS4a, SOCKS5
Shadowsocks, ShadowsocksR
SSH tunnel (with the sshtunnel extra)
PF (port-forwarding)
QUIC (with the quic extra)
TCP and UDP
CLI options
usage: __main__.py [-h] [-l LISTEN] [-r RSERVER] [-ul ULISTEN] [-ur URSERVER]
[-b BLOCK] [-a ALIVED] [-s {fa,rr,rc,lc}] [-d] [-v]
[--ssl SSLFILE] [--pac PAC] [--get GETS] [--auth AUTHTIME]
[--sys] [--reuse] [--daemon] [--test TEST] [--version]
Differences from upstream pproxy
pproxy.__version__ reports "3.0.0" (was "2.7.9").
setup.py declares python_requires=">=3.9". The wheel uploaded to PyPI under the name klan1-pproxy will refuse to install on Python 3.6 or 3.7.
pproxy/__doc__.py uses importlib.metadata instead of the deprecated pkg_resources API to look up its own version.
Differences from upstream are tracked in CHANGELOG.md.
Repository
Upstream: https://github.com/qwj/python-proxy (and its mirror https://github.com/moreati/pproxy)
Branch: py3.12-compat
Tag: v3.0.0
License
MIT. Same as the upstream project.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file klan1_pproxy-3.0.0.tar.gz.
File metadata
- Download URL: klan1_pproxy-3.0.0.tar.gz
- Upload date:
- Size: 36.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69757759d2e448c62317639b0052558af8fbf1465d811cbbcc0481885e458bd9
|
|
| MD5 |
31c70c2f6f2af9254f3e06ae1dc1c275
|
|
| BLAKE2b-256 |
db07c1d78afaf79967e1a3eaf9e6c8bb8d4e22582305b10079ffc002fd5a9beb
|
File details
Details for the file klan1_pproxy-3.0.0-py3-none-any.whl.
File metadata
- Download URL: klan1_pproxy-3.0.0-py3-none-any.whl
- Upload date:
- Size: 37.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aefb35a8a555e50be8c34cd78978916a460daee30185d64553b3088ce778219a
|
|
| MD5 |
895824abe608705d46f99cdcd1c06a85
|
|
| BLAKE2b-256 |
12b1c218d4f9853514349701a838db227fa964dc48868c4dfc4d7a127ca8287f
|