* Use pipes instead of queues.
Possible solution for #68
* Handle ConnectionRefusedError
* Close corresponding pipes on shutdown
* Abstract classes for plugins.
* Add github workflows
* Use pytest for github workflow
* Add Windows/Mac workflows
* Use os.matrix
* 3.8 and 3.9 probably dont exists yet
* Do not fail-fast, also python 3.5 seems to be throwing syntax error for typing
* autopep8
* Disable windows-latest workflow which seems to hang
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
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.