Giter Site home page Giter Site logo

louislivi / proxy.py Goto Github PK

View Code? Open in Web Editor NEW

This project forked from abhinavsingh/proxy.py

0.0 1.0 0.0 311 KB

Lightweight HTTP, HTTPS, HTTP2, WebSockets Proxy Server in a single Python file

Home Page: https://abhinavsingh.com/proxy-py-a-lightweight-single-file-http-proxy-server-in-python/

License: Other

Dockerfile 1.25% Python 97.18% Makefile 1.56%

proxy.py's Introduction

Proxy.Py

alt text

Features

  • Distributed as a single file module
  • No external dependency other than standard Python library
  • Support for http, https, http2 and websockets request proxy
  • Optimize for large file uploads and downloads
  • IPv4 and IPv6 support
  • Basic authentication support
  • Can serve a PAC (Proxy Auto-configuration) file

Install

To install proxy.py, simply:

$ pip install --upgrade proxy.py

Using docker:

$ docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py

Usage

$ proxy.py -h
usage: proxy.py [-h] [--backlog BACKLOG] [--basic-auth BASIC_AUTH]
                [--client-recvbuf-size CLIENT_RECVBUF_SIZE]
                [--hostname HOSTNAME] [--ipv4 IPV4] [--log-level LOG_LEVEL]
                [--open-file-limit OPEN_FILE_LIMIT] [--port PORT]
                [--pac-file PAC_FILE]
                [--server-recvbuf-size SERVER_RECVBUF_SIZE]
                [--num-workers NUM_WORKERS]

proxy.py v0.4

optional arguments ordered alphabetically:
  -h, --help            show this help message and exit
  --backlog BACKLOG     Default: 100. Maximum number of pending connections to
                        proxy server
  --basic-auth BASIC_AUTH
                        Default: No authentication. Specify colon separated
                        user:password to enable basic authentication.
  --client-recvbuf-size CLIENT_RECVBUF_SIZE
                        Default: 8 KB. Maximum amount of data received from
                        the client in a single recv() operation. Bump this
                        value for faster uploads at the expense of increased
                        RAM.
  --hostname HOSTNAME   Default: 127.0.0.1. Server IP address.
  --ipv4 IPV4           Whether to listen on IPv4 address. By default server
                        only listens on IPv6.
  --log-level LOG_LEVEL
                        Valid options: DEBUG, INFO (default), WARNING, ERROR,
                        CRITICAL. Both upper and lowercase values are
                        allowed.You may also simply use the leading character
                        e.g. --log-level d
  --open-file-limit OPEN_FILE_LIMIT
                        Default: 1024. Maximum number of files (TCP
                        connections) that proxy.py can open concurrently.
  --port PORT           Default: 8899. Server port.
  --pac-file PAC_FILE   A file (Proxy Auto Configuration) or string to serve
                        when the server receives a direct file request.
  --server-recvbuf-size SERVER_RECVBUF_SIZE
                        Default: 8 KB. Maximum amount of data received from
                        the server in a single recv() operation. Bump this
                        value for faster downloads at the expense of increased
                        RAM.
  --num-workers NUM_WORKERS
                        Defaults to number of CPU cores.

Proxy.py not working? Report at:
https://github.com/abhinavsingh/proxy.py/issues/new

proxy.py's People

Contributors

abhinavsingh avatar kvinwang avatar pbi-qfs avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.