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

Move dashboard backend within proxy module, now ships via same pip package (#177)

* Allow resources to load from http and ws when running w/o https

* Move dashboard backend (d...

148c2604728620ce7a80d75273a90c97faf3d86a authored about 5 years ago by Abhinav Singh <[email protected]>
Devtools Protocol (#174)

* Refine docs

* Decouple relay from dashboard.

Will be re-used by devtools protocol plugin...

439d58fdc26332496a43dcdc439440cfd1cc6293 authored about 5 years ago by Abhinav Singh <[email protected]>
Allow to pass flags as kwargs too in embed mode (#172)

* Dynamically load devtools instead of on page load

* Add support for passing flags as kwargs...

c943dd7e27eaed3a72c144e9350cef6e1305fcfc authored about 5 years ago by Abhinav Singh <[email protected]>
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

1b0c2f8c5eee11f3048018b407ec7f553afbd891 authored about 5 years ago by Abhinav Singh <[email protected]>
Load devtools within iframe (#171)

7561967be4ec69f0c456a248d59f7282d62fdf5b authored about 5 years ago by Abhinav Singh <[email protected]>
Load devtools within iframe

a46e73f51c031398edf4a715559e24bb4d47f2f5 authored about 5 years ago by Abhinav Singh <[email protected]>
Dashboard Inspect traffic tab + devtools (#170)

* Explicitly link version changelog in TOC

* Separate out app header body builder

* Ensure...

5cc9f2dde2fe76bbc2432efa03bee5f86a0d0868 authored about 5 years ago by Abhinav Singh <[email protected]>
Consistent dashboard look and feel across plugins (#169)

* Explicitly link version changelog in TOC

* Separate out app header body builder

* Ensure...

e42cfefcf6eab9037fb6257871bef8d37ed1c0ac authored about 5 years ago by Abhinav Singh <[email protected]>
Add proxy.main.TestCase for unit testing Python application with proxy.py (#167)

* Add demonstration of how to use proxy.py within Python application unittests

* mypy fixes
...

3d65366c7bb5be9558489d5c7170bf7f7cfd904b authored about 5 years ago by Abhinav Singh <[email protected]>
Introduce sendMessage websocket api which allows for callbacks (#166)

* Introduce sendMessage websocket api which allows for callbacks, deprecate lastPingId in favor ...

7ca7c2d8ccb3a985c215f5e0b6c4ec739b818790 authored about 5 years ago by Abhinav Singh <[email protected]>
Move traffic_control outside of core plugin, it maps to several plugin examples like redirectToUpstreamHost, filterByUpstreamHost plugins (#165)

d20cf1c764357d6745e4255e558605eb31b41f97 authored about 5 years ago by Abhinav Singh <[email protected]>
Give structure to dashboard app (#163)

* Separate out files for different responsibilities.

1. Add src/plugins directory. This dire...

ee7a69b1fc08aafbb0b73677ed054ca00a42be1e authored about 5 years ago by Abhinav Singh <[email protected]>
Add private / public key generation utils which comply with new requirements on Mac OS 10.15 (#160)

* Add utilities to generate private key and public keys with alternate cnames

* Add separate ...

0cc4e5e625865d1f790059f8f57d9b79c98b73a8 authored about 5 years ago by Abhinav Singh <[email protected]>
Add non-blocking embedded mode feature (#159)

* Fixes #158

* mypy fixes

* Instructions for non-blocking embed mode

* Toggle running f...

93d8a55c0e39a7d8065dc814e84523277e055cb9 authored about 5 years ago by Abhinav Singh <[email protected]>
Separate packages for Dashboard (#157)

* Refactor Makefile and add dashboard setup.py

* Package dashboard as proxy.py-dashboard pip ...

183d03b8669e702613a85a2289f2755b2a671559 authored about 5 years ago by Abhinav Singh <[email protected]>
Test refactor + Docker image CI (#154)

* Move tests into individual modules too

* Ensure one test class per file

* Fix docker ima...

3aa1dc28245c3d8e289424a261a805c7aed3eefa authored about 5 years ago by Abhinav Singh <[email protected]>
Update setuptools from 41.5.1 to 41.6.0 (#153)

75a818d397986ec766d37b9d986204b9fbbcfd40 authored about 5 years ago by pyup.io bot <[email protected]>
Update README.md (#152)

* Update flags

* Update debugging instructions and run instructions for develops

* Update ...

0e2194d683e739a6ebcc69f460bf6fed5c9f2fdd authored about 5 years ago by Abhinav Singh <[email protected]>
Update mypy==0.740 (#151)

1ce16b95deae935a0aba2d972f6cf9f82de2cde9 authored about 5 years ago by Abhinav Singh <[email protected]>
Proxy.py Dashboard (#141)

* Remove redundant variables

* Initialize frontend dashboard app (written in typescript)

*...

e14548252ca60f754368587a605547be6fd001c6 authored about 5 years ago by Abhinav Singh <[email protected]>
Update py-spy from 0.2.2 to 0.3.0 (#144)

3b2b2e5dd5595575ed87a64948e61c399c2425fd authored about 5 years ago by pyup.io bot <[email protected]>
Update setuptools from 41.5.0 to 41.5.1 (#149)

521a49ffd1e5af88377418719e6f2dadc7494600 authored about 5 years ago by pyup.io bot <[email protected]>
Update flake8 from 3.7.8 to 3.7.9 (#148)

e7e9e14e7504e1ec9bfb48d8328a847da6b93517 authored about 5 years ago by pyup.io bot <[email protected]>
Update typing-extensions from 3.7.4 to 3.7.4.1 (#147)

52275f0588e721fccfb3dcd0a8c6dfa100f26698 authored about 5 years ago by pyup.io bot <[email protected]>
Update setuptools from 41.4.0 to 41.5.0 (#145)

5db42b349e2bede23d18b2a56acc5083ac113d40 authored about 5 years ago by pyup.io bot <[email protected]>
Update pytest from 5.2.1 to 5.2.2 (#142)

57315289ae9db93277880bae11b65dcb2d7124d8 authored about 5 years ago by pyup.io bot <[email protected]>
os.close only for threadless (#138)

* os.close only for Threadless to avoid fd leaks

* Remove os.close mock which is only called ...

ca1d1e713963c9e8266d0ffa6986df1064b46503 authored about 5 years ago by Abhinav Singh <[email protected]>
Add pipeline response parsing tests (#137)

* Add pipeline response parsing tests

* build_http_response now only adds content-length if t...

c77f8b57894840f902fbdfaa18583c126e4fb9d2 authored about 5 years ago by Abhinav Singh <[email protected]>
Remove pip upgrade for windows which seems to be failing on travis (#136)

* Remove pip upgrade for windows which seems to be failing on travis

* Remove windows testing...

69445a8921ba82738bde1f64e0939a34d08aaae2 authored about 5 years ago by Abhinav Singh <[email protected]>
Threadless execution using coroutines (#134)

* Workers need not register/unregister sock for every loop

* No need of explicit socket.setti...

a1bb659488603aae67e43aa5de932284a690ac00 authored about 5 years ago by Abhinav Singh <[email protected]>
Test plugin examples (#130)

* Add tests for plugin_examples.* to ensure we never break functionality

* Add tests for plug...

9d46cba1e8660bf8b0dc41bc07c926933fc1439f authored about 5 years ago by Abhinav Singh <[email protected]>
Add --timeout flag with default value of 10 second. (#129)

* Add --timeout flag with default value of 5. This value was previously hardcoded to 30

* --...

dc560be6ea140ad3eb551922bab637e735200da4 authored about 5 years ago by Abhinav Singh <[email protected]>
Invoke proxy plugin handle_request for each request in HTTP/1.1 pipeline or when TLS interception is enabled (#128)

* Add tests for is_http_1_1_keep_alive

* Add ModifyPostDataPlugin in README

* Fixes #126
...

6455a3497350f5aff89454766031a400dbccf37c authored about 5 years ago by Abhinav Singh <[email protected]>
Ensure teardown is always accompanied with Connection: close header

Fix tests

2840afc0bf49b024a1cccb754bc0d09ae6c64311 authored about 5 years ago by Abhinav Singh <[email protected]>
Reduce docker image size

3b5e2ccf9c8bc1666568b4fad019079ab5647761 authored about 5 years ago by Abhinav Singh <[email protected]>
Invoke HttpWebServerBasePlugin.handle_request for each request in HTTP/1.1 pipeline (#125)

* Add tests to verify certificate generation

* Separate out tests for ProtocolHandler and Web...

bb7f5a61dc61178008a328688e6c2e4c8defda55 authored about 5 years ago by Abhinav Singh <[email protected]>
Update issue templates (#123)

a19da5dcb911fca9a999a222309f31fbc2fcd09f authored about 5 years ago by Abhinav Singh <[email protected]>
Always update latest tag for docker releases

5f91b179a3de0eb67057122a023756c07d2fab13 authored about 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #122 from abhinavsingh/develop

v1.1.1 Release

27e4152cd29efba1d2826951a2bd2095704b53cc authored about 5 years ago by Abhinav Singh <[email protected]>
Ensure explicit flush before upgrade while TLS intercepting (#121)

* Ensure explicit flush before upgrade + nonblocking server sock.

* tls interception tests

...

3b9587b6f1fa8b18efe3d290ee135dc36050f996 authored about 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #119 from abhinavsingh/master

Sync master and develop

d2a9cdd2775747b984b9fffd4c479e1f7265f6b7 authored about 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #118 from abhinavsingh/develop

v1.1.0 Release

22666098abd317af0d146595debaa8930a6fad4d authored about 5 years ago by Abhinav Singh <[email protected]>
v1.1.0 release

Add pip install typing-extensions==3.7.4 for docker image

7a6247ea1880503211d0adf8f1ca14bc84f9ce8a authored about 5 years ago by Abhinav Singh <[email protected]>
Update py-spy from 0.1.11 to 0.2.2 (#117)

c01f497ec9b202a5d967078e5d5c2aa2f80cc60f authored about 5 years ago by pyup.io bot <[email protected]>
Chrome Devtool Integration first steps (#109)

* Initialize skeleton electron app

* Attempt to open devtools

* Electron free

* Initial...

908c0b585525b9641958fd1664bb9047bb0f1bc5 authored about 5 years ago by Abhinav Singh <[email protected]>
ssl.SSLError during handshake can teardown worker process (#111)

prevent socket which is listening been close when TcpConnectionUninitializedException is raised

542cd427333afb176b79c7aedaa70d68bea69504 authored about 5 years ago by normal-cock <[email protected]>
Update setuptools from 41.2.0 to 41.4.0 (#112)

22079c3dbb9b917c7073832ea79929e78b6d88d9 authored about 5 years ago by pyup.io bot <[email protected]>
Update pytest from 5.2.0 to 5.2.1 (#113)

75dd31b669fb373f415e6ac0d07d3565dc5fa542 authored about 5 years ago by pyup.io bot <[email protected]>
Use selectors.DefaultSelector instead of select.select (#106)

* Use selectors.DefaultSelector instead of select.select

* Unregister to avoid endless loop
...

a9c8659ffa9ac5c28cb1a776dc625f1a058d26e5 authored about 5 years ago by Abhinav Singh <[email protected]>
Update pytest from 5.1.3 to 5.2.0 (#107)

7e2dcdd443f448883f835891bb4f604cccf99acc authored about 5 years ago by pyup.io bot <[email protected]>
Update setuptools from 40.6.2 to 41.2.0 (#105)

8151b5545efae238db26a61b819f33c24319aab7 authored about 5 years ago by pyup.io bot <[email protected]>
Bump develop version to 1.0.1 and Autopep8 (#103)

* autopep8

* add int support for text_ and bytes_

46bc7795fb6209ed7556dd0977aace4873571998 authored about 5 years ago by Abhinav Singh <[email protected]>
Merge pull request #64 from abhinavsingh/develop

v0.3 -> v1.0

b34c720fe6b537884c131f6d2d022519c65a2ebe authored about 5 years ago by Abhinav Singh <[email protected]>
Make pypi release 1.0.0

032a6f26c94eb136c6449a438ae17d493257141e authored about 5 years ago by Abhinav Singh <[email protected]>
Add ProposedRestApiPlugin example. (#101)

* Add ProposedRestApiPlugin example.

This plugin is an example to demonstrate how `proxy.py` ...

c302537572065154b57df781b87f7c023fb19736 authored about 5 years ago by Abhinav Singh <[email protected]>
Create FUNDING.yml

3a9c8bc8a2acd56dd0dda47e37be56965c652b89 authored about 5 years ago by Abhinav Singh <[email protected]>
Defer SSL Wrap (#100)

* Always deduce address family as we have a structure

* Convert TcpConnection into an ABC.

...

716f211a2b7777aeb68a318758d7b5084e458fe4 authored about 5 years ago by Abhinav Singh <[email protected]>
Update mypy from 0.720 to 0.730 (#99)

e38531b4c3b7be18b490045ed19a3b19e3061a96 authored about 5 years ago by pyup.io bot <[email protected]>
Pluggable WebServer (#98)

* Enable windows and pre/dev python releases

* Move twine to requirements-release.txt

* 3....

ccb1dbeb5f182665b6feaa979fe1d8b1dcd81bfc authored about 5 years ago by Abhinav Singh <[email protected]>
bugfix when loading plugins (#92)

3a5c7800955756720c31f42a27bb12e38360e57f authored about 5 years ago by normal-cock <[email protected]>
Add HttpParser.build_response utility (#96)

033b7ad24a51c7084190405a983ec11572b5073a authored about 5 years ago by Abhinav Singh <[email protected]>
Test coverage and mypy compliance (#94)

* Add tests and mypy compliance for tests

* Add pragma: no cover for abstract class methods
...

292ae497fcac2555d4561d2ab84238b7c1aecbd4 authored about 5 years ago by Abhinav Singh <[email protected]>
Add starting proxy.py instructions

91a6942e49a8e06c0d277fac868641c52f42e167 authored about 5 years ago by Abhinav Singh <[email protected]>
Lint & Doc (#91)

* Remove redundant __init__ from plugins

* autopep8

* Add plugin developer and contributor...

9e950436a71140f6046adf483b8156639cd97bb4 authored about 5 years ago by Abhinav Singh <[email protected]>
Doc update (#90)

* Add documentation

* Add TOC

* Add links to encryption and tls

* fix cert-file and key...

b03629fa0df1595eb4995427bc601063be7fdca9 authored about 5 years ago by Abhinav Singh <[email protected]>
Add support for TLS/SSL interception and HTTPS server (#86)

* Handle OSError thrown when curl --proxy-cacert flag is invalid

* Add server-cert

* Docke...

92142a70d98d01a9c1e3cbe987d0f4ce9a13edc3 authored about 5 years ago by Abhinav Singh <[email protected]>
Update twine from 1.15.0 to 2.0.0 (#88)

8ecb76da2f8b1478d374555bd99339604ae73e6b authored about 5 years ago by pyup.io bot <[email protected]>
Can serve proxy traffic over HTTPS (#85)

* Can serve proxy traffic over HTTPS.

Pass --certfile and --keyfile arguments to enable SSL/T...

397f92e56173f5494a50af0b5537027a5b43f663 authored about 5 years ago by Abhinav Singh <[email protected]>
Make docker v1.0.0 release (#82)

* Make docker v1.0.0 release

* 👍

* 👍 ðŸ“ą ðŸ’ŧ ðŸ’Ą

* 👍 ðŸ“ą ðŸ’ŧ ðŸ’Ą

2b8fd53f1594b76f8429bca29fcff0da40a2bf2d authored about 5 years ago by Abhinav Singh <[email protected]>
mypy coverage (#78)

* mypy coverage

* First stab at mypy --strict complaince

* mypy --strict compliance.

* ...

ae1f1d654c2b7d5a0976b3f616a3dc5b64c8133d authored about 5 years ago by Abhinav Singh <[email protected]>
Resolve issues reported by Bandit (#77)

* Resolve issues reported by Bandit

* Fix tests

0fa3a3f4d7cca7148f7615adf6cf0c082c71df99 authored over 5 years ago by Abhinav Singh <[email protected]>
Use ipaddress type and avoid explicit Connection: close header to upstream (#76)

* Fixes #71 and address some of #75

* Fix tests as IPV6 is default now

* Add comments and ...

5bdfd20ce8289b9c2137791a1e10d7e1b5aa39f7 authored over 5 years ago by Abhinav Singh <[email protected]>
Add plugin usage instruction

5d4f73541537282c3dcea6b7c26972a3254cee49 authored over 5 years ago by Abhinav Singh <[email protected]>
Initial Update (#74)

* Update coverage from 4.5.2 to 4.5.4

* Update twine from 1.12.1 to 1.15.0

* Update pytest...

15796cf5deb9aa19bf43fc6d631f45f96ac0df3e authored over 5 years ago by pyup.io bot <[email protected]>
Http parser fix for state completion (#73)

* Fix HttpParser to correctly reach COMPLETE state.

Fixes #70, see test case test_pip_connect...

3bc81c3e75b8517492729ba225b6674e7a7913ea authored over 5 years ago by Abhinav Singh <[email protected]>
Use Pipe instead of Queue when passing sockets (#69)

* Use pipes instead of queues.

Possible solution for #68

* Handle ConnectionRefusedError
...

5eb4d8a97c83aab2b95d25077a56ae71be5a379e authored over 5 years ago by Abhinav Singh <[email protected]>
HttpParser fix for responses

939303452adec2f6afdd2512154ea88a604d4c48 authored over 5 years ago by Abhinav Singh <[email protected]>
Android Emulator fixes #65

a7d0a302782e14ae2241f6e43e46bbd5cca81aed authored over 5 years ago by Abhinav Singh <[email protected]>
Address mypy errors.

Unfortunately collections.namedtuple isn't supported by mypy and most
likely never will be. Idea...

e4ba6b16cd68c15c11d75e2da72907463422f9d9 authored over 5 years ago by Abhinav Singh <[email protected]>
Do not store raw response bytes for CONNECT requests.

Fixes #67 and addresses #66 too.

80c73a4798c9df023051d562cc09187bdb4e010f authored over 5 years ago by Abhinav Singh <[email protected]>
Necessary productionization tests.

3e92faba32395ed0b168df0c5813daecd1105581 authored over 5 years ago by Abhinav Singh <[email protected]>
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

ef4003c1bea55e9202f37319153abf8276913bdc authored over 5 years ago by Abhinav Singh <[email protected]>
Update LICENSE

81b678f2235ae69f62340df97c9b2f65ec42d5ea authored over 5 years ago by Abhinav Singh <[email protected]>
Merge branch 'master' into develop

d387013a3f59df65493a48a82d62990bf4f2f35c authored over 5 years ago by Abhinav Singh <[email protected]>
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

7e0e379a76053079d8d1b89ea860bfe8476fef39 authored over 5 years ago by Abhinav Singh <[email protected]>
Add Procfile.

Several forks have introduced a Procfile. It doesn't hurt to have one in
the repo itself.

c80901689a4e83888aac671cc810781e508f6910 authored over 5 years ago by Abhinav Singh <[email protected]>
Update LICENSE

cd10b9aa24e256ae31bd2a265456d980f64f8cc6 authored over 5 years ago by Abhinav Singh <[email protected]>
Address ipv6 parsing from Http requests #65

95671e4905ac891343d788486ca8efc5af676b08 authored over 5 years ago by Abhinav Singh <[email protected]>
Add --disable-headers option. Fixes #31

c3cd9be816b2710775d792195bbeed6a898c721a authored over 5 years ago by Abhinav Singh <[email protected]>
Fix default listen on IPV6 for linux systems.

Closes #59

8489e8bc2ff9ac9f789670ba7aee78f86ffdb2eb authored over 5 years ago by Abhinav Singh <[email protected]>
v1.0

3bf0f0754be387526a2b3ddadf53cafdadc8646c authored over 5 years ago by Abhinav Singh <[email protected]>
Add tests for proxy.main

3a371f2d6fd44f9dca5a84fe864eeaf9bd371bd7 authored over 5 years ago by Abhinav Singh <[email protected]>
Add option (--log-file) to redirect logs to a file

a5a0149402df1f8e7dc535e4bc3653ec304d254b authored over 5 years ago by Abhinav Singh <[email protected]>
Add --pid-file option to dump parent process ID to a file.

Rename to --disable-http-proxy.

Is more appropriate since proxy is always enabled.

unittest.sk...

d0f696212e42ab66c627cb8f65130cfd9b438060 authored over 5 years ago by Abhinav Singh <[email protected]>
Add coveralls integration

No use mirrors

Enforce coverage3

Add coverage badge and use python -m to invoke coverage

Enfo...

fcfbec47604e2ef4efaaca786e61e88758d97b39 authored over 5 years ago by Abhinav Singh <[email protected]>
Create separate base plugin HttpProxyBasePlugin for proxy handling only

Disable open file limit tests for Windows

19d47ad792fcaf1dfa2ee28e27d5bd96695db2ed authored over 5 years ago by Abhinav Singh <[email protected]>
Add tests for HttpRequestRejected responses and open file limit setter.

eeb983f988469bcc0847af935f91609673edf82b authored over 5 years ago by Abhinav Singh <[email protected]>
Add --version flag also used by Makefile for releases.

8ba63b1821da69de2880b256bde4cb6ff3792185 authored over 5 years ago by Abhinav Singh <[email protected]>
Enable WebServer plugin when --pac_file serving is requested.

1. Also binary read pac file instead of str
2. Return 404 for unhandled WebServer requests

e463d428b926c10bb019bb48f5446fb48d2d280e authored over 5 years ago by Abhinav Singh <[email protected]>
Merge branch 'develop' of github.com:abhinavsingh/proxy.py into develop

2c239a1d25274b9fb6f9dc4e63b3d1487382059c authored over 5 years ago by Abhinav Singh <[email protected]>