An INEFFICIENT (improved a lot in v2.7 and v4.0 update) and INSECURE (to be improved) Python HTTP(S) proxy
The client-side program (tiro) requires OpenSSL and Python 3.x, and supports at least Windows and Linux.
The server-side program (Finale) requires Python 3.x, and supports at least heroku and MS Azure Web App.
Not using tiroFinale proxy: LOAD: 3.02s
Using tiroFinale proxy (v4.0.02) from localhost: LOAD: 3.32s
- Clone the repository, then
cd finale
python3 -m pip install -r requirements.txt
vi finale.py
and fill in your server's PASSWORD and PORTpython3 ./finale.py
You might want Windows binaries for the client: Releases
- Clone the repository, then
cd tiro
python3 -m pip install -r requirements.txt
vi const.py
and fill in your preferences- Add
ssl_stuff/tiroFinale_CA.ca.crt
to the OS/web-browser CAs as you want python3 ./tiro_proxy.py
- Add
GUIWebUI support fortiro
- Fix the
Content-Length
related bug - Improve efficiency
- Add
GFWList
support - Implement auto-detecting mechanism (
Jaô-Shingan™
) as a backup ofGFWList
- Use wildcard SSL certificate if possible
- Proxy auto-configuration on Windows
- Restore original proxy after exit
- Concurrent certificate signing
- Improve security (low priority)
-
Network error handling and retransmission(deprecated due to the compatibility concern) -
Showing statistics(deprecated as it's not so useful and it will probably affect efficiency somehow)