Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/abhinavsingh/proxy.py

💫 Ngrok FRP Alternative • ⚡ Fast • 🪶 Lightweight • 0️⃣ Dependency • 🔌 Pluggable • 😈 TLS interception • 🔒 DNS-over-HTTPS • 🔥 Poor Man's VPN • ⏪ Reverse & ⏩ Forward • 👮🏿 "Proxy Server" framework • 🌐 "Web Server" framework • ➵ ➶ ➷ ➠ "PubSub" framework • 👷 "Work" acceptor & executor framework
https://github.com/abhinavsingh/proxy.py

Merge pull request #62 from abhinavsingh/plugins

Proxy Plugins

5343350c3c2b983a1c969dba889633ff5fd9f4e6 authored over 5 years ago by Abhinav Singh <[email protected]>
Per worker queue instead of shared one.

1. MultiCoreDispatcher now dispatches request in round robin fashion.
2. Added Python3 static ty...

4019e95850523ee53a392d04630c468113c8ba95 authored over 5 years ago by Abhinav Singh <[email protected]>
Convert HttpProxy and HttpWebServer itself into plugins.

Load plugins during test execution

Further decouple proxy/webserver logic outside of HttpProtoc...

6ea42b0dd908154905c072f45982b11815e6ba5b authored over 5 years ago by Abhinav Singh <[email protected]>
Refactor HttpProxy.run

Fix tests for py2.7 which require external mock module

Disable tests which require listening on...

8732cb71517de71af1270f3cfe2d0d5f6af5de55 authored over 5 years ago by Abhinav Singh <[email protected]>
Core changes:

1. Rename HttpServer to MultiCoreRequestDispatcher, there wasn't
anything Http about that class,...

6b49de2ce67caeade29763d36265aa6cba16e60e authored over 5 years ago by Abhinav Singh <[email protected]>
Add TcpServer tests and make accept non-blocking.

Non-blocking accepts helps specially in tests to abort the test server
gracefully.

Add ipv6 tcp...

03104cc54d2225ea7aa61ccd1e5fdc073e52f950 authored over 5 years ago by Abhinav Singh <[email protected]>
Camel case consistency and more tests.

Add plugins to proxy.py for programmable proxy.

As requested in https://github.com/abhinavsingh...

c8fabb86c488cfe67fd0996fb705763592973129 authored over 5 years ago by Abhinav Singh <[email protected]>
Camel case consistency

d9946015a753f1227794035b95dedfcbc89455dc authored over 5 years ago by Abhinav Singh <[email protected]>
Link Travis Board for build status image

60e1ac1bc2b241943bdacd53a2550cf085efbf09 authored over 5 years ago by Abhinav Singh <[email protected]>
Disable tests for Python 2.7 version

824ba5758909e442e26d6bffe31c88807e6a067c authored over 5 years ago by Abhinav Singh <[email protected]>
Remove -v flag

653163532c9681ea0b067af8da0ae545c348596c authored over 5 years ago by Abhinav Singh <[email protected]>
Add tests for worker and main

be7235bf0dc6e5604a25a162d7ec27189e949921 authored over 5 years ago by Abhinav Singh <[email protected]>
Add proxy.py banner image

4c09a677a356281031b8095ea35ab2b5852f2f73 authored over 5 years ago by Abhinav Singh <[email protected]>
Only run if Python 3+.

Some users are already being effected by this, however master branch is
still stable. Python 2....

91be44804575804a4130841d5edd742c81809184 authored over 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #57 from abhinavsingh/refactor

Refactor

271352c9dc3e306ba443c4d56ac111c0cba8d8f0 authored over 5 years ago by Abhinav Singh <[email protected]>
Refactor

1. Update class name to be more verbose
2. Update docstring for important classes
3. Global defa...

a182213c57a52f6443176feccb938304ed21fa3c authored over 5 years ago by Abhinav Singh <[email protected]>
No explicit disconnect upon request completion.

This can be an issue with pipelining, but ideally should also be
assisted by time-to-live logic....

1bf46b467ea1082cec7bd58de428afe06cfcf4e7 authored over 5 years ago by Abhinav Singh <[email protected]>
Read and serve pacfile in oneshot

6be854e1e0a6f01ec067aea7cc471d7d0eeb9f6d authored over 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #56 from abhinavsingh/workers

Pre-spawn worker processes to utilize all cores.

a563baadcf1d4953f1ad36b228a358c3afecac65 authored over 5 years ago by Abhinav Singh <[email protected]>
py2.7 fix

ef91d7d30b8b47668a99371568b0c34c65effb08 authored over 5 years ago by Abhinav Singh <[email protected]>
Spawn worker threads

0a8b40e51e842627ba4764b5ed68a7e0ff6853e5 authored over 5 years ago by Abhinav Singh <[email protected]>
Pre-spawn worker processes to utilize all cores.

ad7eb517de6bd033eedfa902bed9cec02a0aabdf authored over 5 years ago by Abhinav Singh <[email protected]>
Update README.md

f3c1ce664edd985e6d480b87faf29747f16f8f5e authored over 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #55 from abhinavsingh/cli

Default listen on IPv6 now.

d889bbd08380e6d8fe063ba839e5461b78a1df48 authored over 5 years ago by Abhinav Singh <[email protected]>
Default listen on IPv6 now.

Use `--ipv4 1` to only listen on IPv4. Fixes #48

c7cd00d95e6c64a00490a4889f1fa52583b0bc43 authored over 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #54 from abhinavsingh/cli

Log Level CLI arguments

8f1c061aad5b8acb8009197de233f0ca1024cd6d authored over 5 years ago by Abhinav Singh <[email protected]>
Allow both upper/lower case as well as first character to set the log level

75a118cac1e1a33f9fc206addeee95b383583135 authored over 5 years ago by Abhinav Singh <[email protected]>
Remove redundant cast of cli arguments

8e326e38bd8970cf77e31d67c3d6b61725652630 authored over 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #35 from pbi-qfs/develop

Added --pac-file option to serve a Proxy Autoconfig file

a0021cdb3ab913495b8da53c8dc1081b895f3ef2 authored over 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #50 from kvinwang/fix49

Add header "Proxy-Authenticate" into 407 response.

ca2bdde0043c9617abe684a89bc1445cb1332057 authored over 5 years ago by Abhinav Singh <[email protected]>
Add header "Proxy-Authenticate" into 407 response.

This fixes https://github.com/abhinavsingh/proxy.py/issues/49

055f9116f7cf2f99a0b6cca3233760ee476378a4 authored over 5 years ago by Kevin Wang <[email protected]>
Release docker container and prep for v0.4

085bc2f9272437f6a69dceab60acf10c8d7ff9f2 authored almost 6 years ago by Abhinav Singh <[email protected]>
Merge pull request #41 from abhinavsingh/travis

Travis CI Support

6aa4e56b660e3e14c7020688ae4589c9781b8e56 authored almost 6 years ago by Abhinav Singh <[email protected]>
Add Travis build status

2c16a8a349da59ca67a5a60edad9dd01cba290c7 authored almost 6 years ago by Abhinav Singh <[email protected]>
Add python 3.7 support using workaround

d2836ca312042c0154e36b99d5fe53c50a3dd9ee authored almost 6 years ago by Abhinav Singh <[email protected]>
Disable py 3.3 and 3.4 for now

d041995c06f25937e5c13cd7d284ca8047177ca4 authored almost 6 years ago by Abhinav Singh <[email protected]>
Disable osx and windows OS

6eb4be803d2938c0672b4951d91d3a0314295c62 authored almost 6 years ago by Abhinav Singh <[email protected]>
Add travis configuration

e2e596259e0fdaac5768eac8fc7f3d9c2a2edb40 authored almost 6 years ago by Abhinav Singh <[email protected]>
Merge pull request #40 from abhinavsingh/develop

v0.3 Release

3b59ade81e807d989bd09969baa70f8c08bb241e authored almost 6 years ago by Abhinav Singh <[email protected]>
Prepare for v0.3 release

6b64c23c47988b748e109c5ee08a415ad049c5b3 authored almost 6 years ago by Abhinav Singh <[email protected]>
Added --pac-file option to serve a Proxy Autoconfig file

3702661daa01ebedacfe838b67c989e4ac11f9c7 authored almost 6 years ago by Pascal Bihler <[email protected]>
Fixes #20 HttpParser bug content-length is missing

fcdae0e9c458542ecb59efa46890467a093773e7 authored almost 6 years ago by Abhinav Singh <[email protected]>
Add requirements-dev.txt, right fix for fixes #5.

01010e30aaa9618b3fa116809798df3481d36ed8 authored almost 6 years ago by Abhinav Singh <[email protected]>
Support CONNECT requests without a HOST header.

Fixes #5

dd2e92f45e63212397e9419cc55809aaf6523663 authored almost 6 years ago by Abhinav Singh <[email protected]>
Refactor to remove global constants.

Inspired from work done by @sakurai-youhei in https://github.com/sakurai-youhei/proxy.py/commit/...

087c2801bce6cce53d6505e671647948724dd8bc authored almost 6 years ago by Abhinav Singh <[email protected]>
Add Dockerfile and build rule

15b6fde86e893e5c80a3b8d5882a56a1818b0958 authored about 6 years ago by Abhinav Singh <[email protected]>
Remove byte_ and text_ helper dependency from tests

e44c8895b6db5c801f77508cece49a8890c1f298 authored about 6 years ago by Abhinav Singh <[email protected]>
Remove httpbin.org dep for http tunnel tests.

Also accept explicit HttpParser type.

40ef059f1878695ea3ca9a1df12388c9b665b4f3 authored about 6 years ago by Abhinav Singh <[email protected]>
Avoid setting open file limits on Windows OS.

Python resource module is unavailable on Windows OS.

c7e47cc7e7b27e8c79d7ccb0c0c116ad12baddca authored about 6 years ago by Abhinav Singh <[email protected]>
Remove 'proxy-authorization' and add 'Via' header.

83b86426b336d00df02fc77d28e75a416ce808b9 authored about 6 years ago by Abhinav Singh <[email protected]>
Actually pass custom server_recvbuf_size and client_recvbuf_size values

d4067103535ff85b997a3031bef80e98444f2a74 authored about 6 years ago by Abhinav Singh <[email protected]>
Set open file limit to default 1024.

For long running proxies this is critical as keep-alive connections can
quickly help exceed defa...

185ceb516d65f33e36e9cb3a5671ed7a1d785829 authored about 6 years ago by Abhinav Singh <[email protected]>
Provision to specify custom buffer sizes.

Now --server-recvbuf-size and --client-recvbuf-size flags can be used
for customizing maximum re...

31bd810b6510a2a342baefd696c67f48fbda9968 authored about 6 years ago by Abhinav Singh <[email protected]>
Remove dependency from httpbin.org for tests.

1. Add explicit state matching in HttpParser class
2. Highlight bug in HttpParser when content-l...

14655aa022e8df345899b41cdc2ce0e2c709e37a authored about 6 years ago by Abhinav Singh <[email protected]>
Update README to reflect basic auth support.

Also refactor proxy exception handling code.

e23444b766aaff5a484deef636d887dcaa30d5e1 authored about 6 years ago by Abhinav Singh <[email protected]>
Support basic HTTP authentication (fixes #16).

3269998cd534b4dbc5425351f9540affb5e3956b authored about 6 years ago by Abhinav Singh <[email protected]>
Add PROXY_TUNNEL_ESTABLISHED_RESPONSE_PKT constant

Also added BAD_GATEWAY_RESPONSE_PKT constant

26d29c4afb33ee1781310cfafce2b94a6f679e6c authored about 6 years ago by Abhinav Singh <[email protected]>
Add placeholder test for issue#5, prepare for v0.3

6dc01c66746cba581019d02e7595bf6f5cfa029b authored about 6 years ago by Abhinav Singh <[email protected]>
Fix Python3 warnings thrown while running tests

1. can't concat str to bytes
2. ResourceWarning: unclosed

917564b1d21d432e67141ed941f0e86e37bba8c2 authored about 6 years ago by Abhinav Singh <[email protected]>
Fixes #27

Preserve size in chunk buffer until CRLF is received avoiding error in
cases when received data ...

4fde72fd106ff90d34971be3c867ec056554661f authored about 6 years ago by Abhinav Singh <[email protected]>
Avoid printing stacktrace for ECONNRESET.

Also replace double quote usage with single quotes per specs.

5c1fac2ffa07659091af1c1b3e3b378700ac8802 authored about 6 years ago by Abhinav Singh <[email protected]>
PEP8 recommendations

584a5fbab556745b54187d0a93d552d3b429919d authored about 6 years ago by Abhinav Singh <[email protected]>
Address PR #15

08da786f5297d4b9bbc3ff11a58b8d28c92127a8 authored about 6 years ago by Abhinav Singh <[email protected]>
Fixes #12: Doesn't work on Windows

Using multiprocessing module on Windows leads to unexpected errors due
to pickling. Reference Py...

d26b61111dbc6c32c90b180135be61a29f0d990a authored about 6 years ago by Abhinav Singh <[email protected]>
PEP8 formatting

5383abf195ef9dcb220529d2bdbfbfc136dfeb90 authored about 6 years ago by Abhinav Singh <[email protected]>
Merge pull request #3 from abhinavsingh/develop

v0.2 with support for python3

0d8c8f89ca779feec490ff2aeeb6550580b267f7 authored almost 10 years ago by Abhinav Singh <[email protected]>
Prepare for v0.2 release

- Fix for None:None access log messages which essentially happen when client
closes a connection ...

ea33c0e2c9442a0f331f5171a1293a8aa1ccde95 authored almost 10 years ago by Abhinav Singh <[email protected]>
Merge pull request #2 from podhmo/py3

python3 support

f31b9bbe6d4c7ca32f45807dd33cb47e46830021 authored almost 10 years ago by Abhinav Singh <[email protected]>
to single file

b6adb4d7592deb9f3f43a63e1a62e2a699c45920 authored almost 10 years ago by podhmo <[email protected]>
oops

b1b19f70cfd55097102cc729de78c57a83118ed0 authored almost 10 years ago by podhmo <[email protected]>
test is passed

a1276c9e76710e629e30d1876aeb16f815a2ac6e authored almost 10 years ago by podhmo <[email protected]>
start py3 suport

0605401cf4ffbbae528e4679bf5e0a44ee62fb83 authored almost 10 years ago by podhmo <[email protected]>
bump version

38e35fc6711973fcd8969b9f5eddd1b2fb8cab4b authored almost 11 years ago by Abhinav Singh <[email protected]>
refactor + add tests

ae0551e3fa00e22e9e539c088c41d868547f2442 authored almost 11 years ago by Abhinav Singh <[email protected]>
variablize reply pkt, ignore, Makefile

755f0e07a19da7212d5e93a62ac4f11d5443ff80 authored almost 11 years ago by Abhinav Singh <[email protected]>
updated README.md

807c93f253798433ec1b23f731b87b12f3bc701f authored over 11 years ago by Abhinav Singh <[email protected]>
- Detailing inside ProxyConnectionFailed exception

- Clean shutdown in case of ProxyConnectionFailed exception
- Code refactoring

cffbc48c062423420f6c1e209ad3675a9354e698 authored over 11 years ago by Abhinav Singh <[email protected]>
- Server and Client class now extends base Connection class

- Proxy.buffer dict is now part of indivisual server/client connection classes
- Cleaner API and ...

f7270060c90c2a268ad1a091dc9066ac50959c7e authored over 11 years ago by Abhinav Singh <[email protected]>
proxy class cleanup

77a093dfcb585e61b57a82479d02ce78720edbdb authored over 11 years ago by Abhinav Singh <[email protected]>
refactored client and server connections into separate objects

1c6cbab198311116205651ae818386da6af249d4 authored over 11 years ago by Abhinav Singh <[email protected]>
setup.py and argparse

7d8a37ab34101e7dafb2fd4b69a2b482497e0fb7 authored over 11 years ago by Abhinav Singh <[email protected]>
first commit

75044a72d9c7b4b8910ba551006b801eafdf3c47 authored over 11 years ago by Abhinav Singh <[email protected]>