No use mirrors
Enforce coverage3
Add coverage badge and use python -m to invoke coverage
Enforce pip3, remove SyntaxError reported line
Use develop branch for coverage status
1. MultiCoreDispatcher now dispatches request in round robin fashion.
2. Added Python3 static type hinting
add Google Cloud Run Button
Preserve proxy.py name as otherwise it breaks module system. Just provide a custom service name to fix Google Cloud Run issue
Custom service name for Google Cloud Run.
Specify port in app.json as required by Google Cloud Run
Go cannot unmarshall int :)
Port desc
Looks like PORT cannot be overridden, for now use port 8080 in Dockerfile
Remove cloudrun integration.
While proxy.py runs successfully within the container, gvisor
limitations doesn't allow proxy.py to accept client connections.
Specifically membarrier syscall isn't allowed.
Update README.md
Load plugins during test execution
Further decouple proxy/webserver logic outside of HttpProtocolHandler.
Per connection plugin instances to avoid locks
Handle BrokenPipeError and teardown if read_from_descriptors return True
Fix tests for py2.7 which require external mock module
Disable tests which require listening on sockets for Travis.
Make travis make free
set TESTING_ON_TRAVIS=1 for windows
1. Rename HttpServer to MultiCoreRequestDispatcher, there wasn't
anything Http about that class, all Http implementation happens in
HttpProxy class
2. PY 2.7 DEPRECATION ERRORS
3. Add --log-format cli option
4. Remove _ from HttpProxy private methods, refactor it's core for
clarify (remove redundant close() and other details)
Non-blocking accepts helps specially in tests to abort the test server
gracefully.
Add ipv6 tcp server client tests
Add tests for TcpServer and HttpServer
Add HttpProxyConfig object to avoid unnecessary arg passing.
Add plugins to proxy.py for programmable proxy.
As requested in https://github.com/abhinavsingh/proxy.py/issues/30 and
other mediums, introduce proxy.py plugins. plugin_examples.py provides
examples for how to use them.
Add capability for plugins to simply ProxyRejectRequest.
Some users are already being effected by this, however master branch is
still stable. Python 2.7 users can continue using the master branch or
simply install via pip. This change also targets issue#58
This can be an issue with pipelining, but ideally should also be
assisted by time-to-live logic. Currently, we drop connection if it is
idle for more than max allowed idle time.