What's Changed
- Add proxy auth test coverage by @abhinavsingh in #496
- Update tox to 3.21.4 by @pyup-bot in #497
- Update autopep8 to 1.5.5 by @pyup-bot in #499
- Update pylint to 2.6.2 by @pyup-bot in #501
- Fix mypy errors by @abhinavsingh in #504
- Update tox to 3.22.0 by @pyup-bot in #502
- Update mypy to 0.812 by @pyup-bot in #503
- Update pylint to 2.7.1 by @pyup-bot in #506
- Update coverage to 5.5 by @pyup-bot in #508
- Update pylint to 2.7.2 by @pyup-bot in #509
- Update tox to 3.23.0 by @pyup-bot in #510
- Update twine to 3.4.1 by @pyup-bot in #517
- Update flake8 to 3.9.0 by @pyup-bot in #514
- Update autopep8 to 1.5.6 by @pyup-bot in #516
- Update py-spy to 0.3.5 by @pyup-bot in #522
- chore: Refactor code quality issues by @akshgpt7 in #523
- Update pylint to 2.7.3 by @pyup-bot in #524
- Bump y18n from 3.2.1 to 3.2.2 in /dashboard by @dependabot in #526
- Update pylint to 2.7.4 by @pyup-bot in #527
- Move wheel package to testing by @abhinavsingh in #531
- Update pytest to 6.2.3 by @pyup-bot in #532
- Update flake8 to 3.9.1 by @pyup-bot in #538
- Update rope to 0.19.0 by @pyup-bot in #539
- Update pylint to 2.8.0 by @pyup-bot in #540
- Update pylint to 2.8.1 by @pyup-bot in #541
- Update pylint to 2.8.2 by @pyup-bot in #542
- Update autopep8 to 1.5.7 by @pyup-bot in #543
- Update typing-extensions to 3.10.0.0 by @pyup-bot in #544
- Update pytest to 6.2.4 by @pyup-bot in #545
- Update tox to 3.23.1 by @pyup-bot in #546
- Update py-spy to 0.3.6 by @pyup-bot in #547
- Update flake8 to 3.9.2 by @pyup-bot in #549
- Bump hosted-git-info from 2.8.5 to 2.8.9 in /dashboard by @dependabot in #548
- Bump lodash from 4.17.19 to 4.17.21 in /dashboard by @dependabot in #550
- Update pytest-cov to 2.12.0 by @pyup-bot in #552
- Update py-spy to 0.3.7 by @pyup-bot in #555
- Bump ws from 7.4.0 to 7.4.6 in /dashboard by @dependabot in #556
- Update pylint to 2.8.3 by @pyup-bot in #558
- Update pytest-cov to 2.12.1 by @pyup-bot in #561
- Bump glob-parent from 5.1.1 to 5.1.2 in /dashboard by @dependabot in #564
- Update pylint to 2.9.3 by @pyup-bot in #573
- Update tox to 3.24.0 by @pyup-bot in #575
- Update twine to 3.4.2 by @pyup-bot in #576
- Update pylint to 2.9.5 by @pyup-bot in #577
- Update wheel to 0.37.0 by @pyup-bot in #585
- Update codecov to 2.1.12 by @pyup-bot in #582
- Update typing-extensions to 3.10.0.2 by @pyup-bot in #599
- Update pytest to 6.2.5 by @pyup-bot in #598
- Update tox to 3.24.3 by @pyup-bot in #592
- Update pylint to 2.10.2 by @pyup-bot in #591
- Bump path-parse from 1.0.6 to 1.0.7 in /dashboard by @dependabot in #586
- Update py-spy to 0.3.9 by @pyup-bot in #604
- Update rope to 0.20.1 by @pyup-bot in #611
- Update pylint to 2.11.1 by @pyup-bot in #609
- Update tox to 3.24.4 by @pyup-bot in #607
- add paramiko types for mypy compliance by @abhinavsingh in #613
- Update py-spy to 0.3.10 by @pyup-bot in #616
- Update coverage to 6.0 by @pyup-bot in #618
- Update pytest-cov to 3.0.0 by @pyup-bot in #619
- Update types-paramiko to 2.7.1 by @pyup-bot in #620
- Update coverage to 6.0.1 by @pyup-bot in #623
- Update paramiko to 2.8.0 by @pyup-bot in #624
- Update coverage to 6.0.2 by @pyup-bot in #628
- Update types-paramiko to 2.7.2 by @pyup-bot in #629
- Update types-paramiko to 2.7.3 by @pyup-bot in #630
- Update rope to 0.21.0 by @pyup-bot in #631
- Update flake8 to 4.0.1 by @pyup-bot in #627
- Add support for 3.10 by @abhinavsingh in #637
- v3.4.0 by @abhinavsingh in #638
- Update autopep8 to 1.6.0 by @pyup-bot in #632
- Fix the
typing_extensions
runtime dependency version by @webknjaz in #641 - Update coverage to 6.1 by @pyup-bot in #640
- Fix path to dashboard.png by @abhinavsingh in #643
- [ImgBot] Optimize images by @imgbot in #644
- Update coverage to 6.1.1 by @pyup-bot in #646
- Async proxy pool, Event manager, Custom access log, Expose loop to plugins by @abhinavsingh in #645
- Add tox envs for building dists via PEP 517 by @webknjaz in #647
- Revert "Upgrade
master
todevelop
insetup.py
" by @webknjaz in #650 - Add a no-op check job to GHA for branch protection by @webknjaz in #652
- Add a config for YAMLLint by @webknjaz in #653
- Add a config for flake8 by @webknjaz in #654
- Correct spelling mistakes caught by
codespell
by @webknjaz in #656 - Add a config for pylint by @webknjaz in #655
- Organize the linting setup around tox+pre-commit by @webknjaz in #657
- Make the YAML files follow consistent style by @webknjaz in #658
- Add autocancellation of the stale PR GHA jobs by @webknjaz in #663
- Update twine to 3.5.0 by @pyup-bot in #665
- Enable the
add-trailing-comma
pre-commit fixer by @webknjaz in #661 - Migrate the pytest invocation to
tox
by @webknjaz in #662 - Pre-install mypy deps in
pre-commit.ci
by @webknjaz in #666 - Fix the YTT201 flake8 violation by @webknjaz in #667
- Make names in the GHA lib workflow short by @webknjaz in #669
- Update outdated sections of the codebase by @abhinavsingh in #670
- Make pytest emit XML coverage by @webknjaz in #673
- CustomDnsResolver plugin, CloudflareDnsResolver plugin, Allow plugins to configure network interface by @abhinavsingh in #671
- Add tests for missing core modules by @abhinavsingh in #674
- Use core loop for reverse proxy async IO operations by @abhinavsingh in #675
- Collect coverage for
tests/
by @webknjaz in #677 - Allow pylint to utilize all available CPU cores by @webknjaz in #676
- Add a config for Coverage.py by @webknjaz in #679
- Add a config for pytest by @webknjaz in #680
- Ignore a
DeprecationWarning
inpytest
config by @webknjaz in #683 - Adopt BaseTcpServerHandler within HttpProtocolHandler by @abhinavsingh in #681
- Inline the dist description in pkg metadata by @webknjaz in #684
- Add a pytest-based test for catching import loops by @webknjaz in #678
- Test built artifacts in the CI instead of Git src by @webknjaz in #682
- Fix python 3.10 @ ubuntu pytest ignore by @abhinavsingh in #685
- must_flush_before_shutdown until entire client buffer has been flushed by @abhinavsingh in #686
- Readme Updates by @abhinavsingh in #687
- Response bodies can be empty or missing + HttpParser refactoring by @abhinavsingh in #688
- [ModifyChunkResponsePlugin] Only bail out of body is not expected by @abhinavsingh in #690
- DEFAULT_CA_FILE is now certifi/cacert.pem by @abhinavsingh in #691
- Expose pre-commit tool hooks execution times by @webknjaz in #692
- Work by @abhinavsingh in #693
- Pool by @abhinavsingh in #694
- Top-level notion of work not client by @abhinavsingh in #695
- Rename
Proxy.initialize
asFlagParser.initialize
by @abhinavsingh in #696 - Add a
--unix-socket-path
flag by @abhinavsingh in #697 - Trigger workflows only when necessary file changes are detected by @abhinavsingh in #699
- Disable static web server test on GHA environment (flaky on Ubuntu) by @abhinavsingh in #700
- Add
lib-dep
makefile target by @abhinavsingh in #701 - Put core flags where they belong by @abhinavsingh in #702
- Update types-paramiko to 2.7.4 by @pyup-bot in #704
- Fix
--enable-dashboard
flags by @abhinavsingh in #707 - Move pid file write/remove within
AcceptorPool
by @abhinavsingh in #708 EventManager
is also a context manager by @abhinavsingh in #709--threadless
default forPython 3.8+
onmac
andlinux
by @abhinavsingh in #710OP_NO_TLSv1_1
by default for upstream connection negotiations by @abhinavsingh in #712- Add more context in intro by @abhinavsingh in #713
- Add an explicit config for darglint by @webknjaz in #717
- Add
--num-acceptors
flag + Allowwork_klass
viaProxy
context manager kwargs by @abhinavsingh in #714 - Update badges to match new GHA workflows by @abhinavsingh in #718
- Add
Listener
, Web server close on header, usePipe
instead ofManager
in eventing core by @abhinavsingh in #720 - Test cov by @abhinavsingh in #721
- Allow
--plugins
flag to be used multiple times by @abhinavsingh in #725 - Add
--proxy-pool
flag by @abhinavsingh in #727 - Custom Url Parser by @abhinavsingh in #730
- Add more info in log context by @abhinavsingh in #732
- Allow
access_log
format override by web plugins by @abhinavsingh in #733 - Add
--auth-plugin
flag to override default basic auth plugin by @abhinavsingh in #734 - Switch versioning to be SCM-based by @webknjaz in #715
--enable-proxy-protocol
: HAProxy Protocol v1 by @abhinavsingh in #735- No abstract method for proxy plugin by @abhinavsingh in #738
- Implement publishing via GHA by @webknjaz in #716
- Enable
release-testpypi
by @abhinavsingh in #741 - Fix dist version in CI/CD on pushes to
develop
by @webknjaz in #743 - Fix homebrew formulae URL to install from git and not zip by @abhinavsingh in #744
- Move GHA e2e integration job to pytest by @webknjaz in #746
- Make Git archives
setuptools-scm
compatible by @webknjaz in #737 - Reuse a pre-existing
version_tuple
from SCM by @webknjaz in #736 - Add initial Sphinx docs by @webknjaz in #747
- Handle invalid/malformed data from clients in HttpParser by @JerryKwan in #740
- Add all IANA assigned HTTP method names by @abhinavsingh in #751
- Fix Makefile to use tox for docs by @webknjaz in #752
- Include GitHub's CoC and security in Sphinx docs by @webknjaz in #755
- Add community contribution guidelines by @abhinavsingh in #757
- [IntegrationTest] Use
127.0.0.1
as target address and a random port by @abhinavsingh in #756 - Transparent
ProxyPy.png
by @abhinavsingh in #759 - Add
TcpUpstreamConnectionHandler
class by @abhinavsingh in #760 - Add
.vscode
settings by @abhinavsingh in #761 - Added
DEFAULT_SELECTOR_SELECT_TIMEOUT
by @abhinavsingh in #762 - Enhancements by @abhinavsingh in #763
- Run push workflow only for push to master and develop branch by @abhinavsingh in #764
- Single workflow by @abhinavsingh in #765
- [ImgBot] Optimize images by @imgbot in #766
- Acceptors performance by @abhinavsingh in #767
- Include contributing guidelines in Sphinx docs by @webknjaz in #771
- Fix tox invocation in the doc make target by @webknjaz in #772
- Declare project URLs in Python package metadata by @webknjaz in #778
- Async
get_events
,handle_event
,handle_readables
,handle_writables
by @abhinavsingh in #769 - Prune unnecessary directories from
sdist
package by @abhinavsingh in #779 - Use proper email for the Git user in GHA by @webknjaz in #781
- Publish a GitHub Release after tagging by @webknjaz in #782
- Create
dependabot.yml
by @abhinavsingh in #783 - Optimize by @abhinavsingh in #780
- Convert
recv
errors as warnings and not exceptions by @abhinavsingh in #787 - Update codecov config to include separate tests and lib sub-projects by @abhinavsingh in #788
- Bump actions/cache from 2.1.5 to 2.1.7 by @dependabot in #784
- pip prod(deps): bump rope from 0.21.0 to 0.22.0 by @dependabot in #785
- npm: bump chrome-devtools-frontend from 1.0.827632 to 1.0.944903 in /dashboard by @dependabot in #786
- pip prod(deps): bump types-paramiko from 2.7.4 to 2.8.1 by @dependabot in #799
- npm: bump eslint-plugin-import from 2.22.1 to 2.25.3 in /dashboard by @dependabot in #798
- Build docker container for all linux target architectures
386
,amd64
,arm/v6
,arm/v7
,arm64/v8
,ppc64le
,s390x
by @abhinavsingh in #797 - Fix publishing a GitHub Release from GHA by @webknjaz in #811
- pip prod(deps): bump coverage from 6.1.1 to 6.1.2 by @dependabot in #813
- Fix matching requested version with Git tag in GHA by @webknjaz in #815
- Fix the tagging condition in GHA build job by @webknjaz in #816
- Publish to TestPyPI from the release request jobs by @webknjaz in #819
- Handle
KeyboardInterrupt
in threadless by @abhinavsingh in #821 - v2.4.0rc1 by @abhinavsingh in #777
- pip prod(deps): bump pylint from 2.11.1 to 2.12.1 by @dependabot in #825
- Bump ncipollo/release-action from 1.8.10 to 1.9.0 by @dependabot in #826
- npm: bump rollup-plugin-copy from 3.3.0 to 3.4.0 in /dashboard by @dependabot in #824
- Add benchmarks comparison for
proxy.py
,tornado
,aiohttp
,flask
by @abhinavsingh in #827 - Integrate Towncrier configuration by @webknjaz in #823
- Add
benchmark
results toREADME.md
by @abhinavsingh in #828 - pip prod(deps): bump types-paramiko from 2.8.1 to 2.8.2 by @dependabot in #831
- npm: bump js-cookie from 2.2.1 to 3.0.1 in /dashboard by @dependabot in #830
- Optimizations & Update Benchmark Results by @abhinavsingh in #832
- [ProxyPoolPlugin] Avoid remote proxy of private IP requests by @abhinavsingh in #833
- No content length or chunked case can occur with
HTTP/1.1
too by @abhinavsingh in #834 - npm: bump eslint-plugin-standard from 4.1.0 to 5.0.0 in /dashboard by @dependabot in #835
- pip prod(deps): bump twine from 3.5.0 to 3.6.0 by @dependabot in #836
task.result
can throw by @abhinavsingh in #837- v2.4.0rc2 by @abhinavsingh in #838
- Add release schedule under FAQ by @abhinavsingh in #840
- Green CI by @abhinavsingh in #841
- Cleanup parser & url classes by @abhinavsingh in #843
- pip prod(deps): bump twine from 3.6.0 to 3.7.0 by @dependabot in #845
- npm: bump jasmine from 3.6.3 to 3.10.0 in /dashboard by @dependabot in #844
- npm: bump chrome-devtools-frontend from 1.0.944903 to 1.0.947377 in /dashboard by @dependabot in #846
- pip prod(deps): bump coverage from 6.1.2 to 6.2 by @dependabot in #847
- Fix GHA check-gate to properly identify failures by @webknjaz in #849
- pip prod(deps): bump pylint from 2.12.1 to 2.12.2 by @dependabot in #851
- npm: bump @types/js-cookie from 2.2.6 to 3.0.1 in /dashboard by @dependabot in #850
- pip prod(deps): bump sphinx from 4.3.0 to 4.3.1 by @dependabot in #853
- pip prod(deps): bump paramiko from 2.8.0 to 2.8.1 by @dependabot in #855
- npm: bump ws from 7.4.6 to 8.3.0 in /dashboard by @dependabot in #854
- pip prod(deps): bump uvicorn from 0.15.0 to 0.16.0 by @dependabot in #857
- npm: bump chrome-devtools-frontend from 1.0.947377 to 1.0.949424 in /dashboard by @dependabot in #856
- Process
--enable-*
flags before loading plugins by @abhinavsingh in #860 - npm: bump http-server from 0.12.3 to 14.0.0 in /dashboard by @dependabot in #858
- pip prod(deps): bump furo from 2021.11.15 to 2021.11.23 by @dependabot in #859
- Update web log context fields to match proxy log context fields by @abhinavsingh in #861
- pip prod(deps): bump pytest-xdist from 2.4.0 to 2.5.0 by @dependabot in #864
- npm: bump eslint-plugin-node from 10.0.0 to 11.1.0 in /dashboard by @dependabot in #863
- Fix broken TLS interception & CacheResponsesPlugin because UID is no longer a UUID by @abhinavsingh in #866
- Integrate showing unreleased changelog draft by @webknjaz in #873
- pip prod(deps): bump types-paramiko from 2.8.2 to 2.8.4 by @dependabot in #868
- npm: bump @types/jasmine from 3.6.1 to 3.10.2 in /dashboard by @dependabot in #867
- pip prod(deps): bump py-spy from 0.3.10 to 0.3.11 by @dependabot in #875
- [GHA] Add container integration test & publish containers to GHCR by @abhinavsingh in #818
- Publish multi-platform containers on GHCR by @abhinavsingh in #877
- Publish multi-platform containers to DockerHub by @abhinavsingh in #878
- Use
--local-executor
flag by default for Docker container by @abhinavsingh in #880 - v2.4.0rc3 by @abhinavsingh in #882
- Pre-evaluate
args.threadless = is_threadless
by @abhinavsingh in #881 - pip prod(deps): bump blacksheep from 1.2.1 to 1.2.2 by @dependabot in #885
- npm: bump chrome-devtools-frontend from 1.0.949424 to 1.0.952784 in /dashboard by @dependabot in #884
- Tag GHCR latest only when publishing from develop branch by @abhinavsingh in #887
- Fix conditional for latest tag on GHCR by @abhinavsingh in #889
- pip prod(deps): bump mypy from 0.910 to 0.920 by @dependabot in #890
- npm: bump chrome-devtools-frontend from 1.0.949424 to 1.0.952865 in /dashboard by @dependabot in #886
- npm: bump jquery from 3.5.1 to 3.6.0 in /dashboard by @dependabot in #891
- [TLSInterception] Fix serial number generation by @abhinavsingh in #892
- v2.4.0rc4 by @abhinavsingh in #894
- Avoid registering invalid FD with selectors by @abhinavsingh in #896
- [ProxyPool] Add support for basic authorization with upstream proxies by @abhinavsingh in #897
- Add
conn_close
kwarg to packet builder utilities by @abhinavsingh in #898 - Raise
HttpProtocolException
instead ofValueError
by @abhinavsingh in #899 - Ensure context for every
HttpProtocolException
raised by @abhinavsingh in #900 - Response Packet Utilities by @abhinavsingh in #903
- Introduce
ProgramNamePlugin
plugin by @abhinavsingh in #904 - Update defaults for
--hostname
and--local-executor
by @abhinavsingh in #905 Work
can also beTcpServerConnection
, not justTcpClientConnection
by @abhinavsingh in #906- Change
--local-executor
flag semantics by @abhinavsingh in #907 - Clean shutdown on
SIGINT
,SIGHUP
,SIGTERM
,SIGQUIT
by @abhinavsingh in #908 - Fix
HttpWebServerPacFilePlugin
broken routes logic by @abhinavsingh in #915 - Proxy Auto-Configuration (PAC) file should not be compressed by @abhinavsingh in #916
- Move
UpstreamConnectionPool
lifecycle withinThreadless
by @abhinavsingh in #917 - Define work lifecycle events for pool by @abhinavsingh in #918
- Hook
UpstreamConnectionPool
lifecycle withinThreadless
by @abhinavsingh in #921 - pip prod(deps): bump sphinx from 4.3.1 to 4.3.2 by @dependabot in #902
- pip prod(deps): bump paramiko from 2.8.1 to 2.9.1 by @dependabot in #923
- Optimize how
HttpProtocolHandler
delegates to the core plugins by @abhinavsingh in #925 - [TlsParser] Refactored implementation from #748 by @abhinavsingh in #922
- pip prod(deps): bump tox from 3.24.4 to 3.24.5 by @dependabot in #924
- pip prod(deps): bump twine from 3.7.0 to 3.7.1 by @dependabot in #927
- v2.4.0rc5 by @abhinavsingh in #929
- Remove
menubar
by @abhinavsingh in #930 - Use
128 KB
as default value forDEFAULT_BUFFER_SIZE
by @abhinavsingh in #926 - pip prod(deps): bump wheel from 0.37.0 to 0.37.1 by @dependabot in #934
- npm: bump jasmine from 3.10.0 to 4.0.0 in /dashboard by @dependabot in #933
- npm: bump ws from 8.3.0 to 8.4.0 in /dashboard by @dependabot in #936
- pip prod(deps): bump types-paramiko from 2.8.4 to 2.8.6 by @dependabot in #937
DescriptorsHandlerMixin
andDescriptors
,SelectableEvents
types by @abhinavsingh in #938- Add
--port-file
flag by @abhinavsingh in #942 - Expose
UpstreamConnectionPool
to web & proxy plugins by @abhinavsingh in #946 - npm: bump chrome-devtools-frontend from 1.0.952865 to 1.0.956881 in /dashboard by @dependabot in #949
- pip prod(deps): bump sphinxcontrib-towncrier from 0.2.0a0 to 0.2.1a0 by @dependabot in #941
isort
everything except lib (for now) by @abhinavsingh in #952- pip prod(deps): bump httpx from 0.20.0 to 0.21.3 by @dependabot in #951
- Decouple transport framework from dashboard plugin by @abhinavsingh in #953
- Build containers in parallel and pre-check by @abhinavsingh in #954
- Invoke
WebSocketTransportBasePlugin
connected and disconnected callbacks by @abhinavsingh in #956 - [HttpProtocolHandler] Handle invalid request parsing exceptions by @abhinavsingh in #957
- npm: bump jasmine-ts from 0.3.0 to 0.4.0 in /dashboard by @dependabot in #958
- Ignore
utf-8
decoding errors for event emitter by @abhinavsingh in #961 - [WebServer] Refactor routing to allow same path for websocket and web requests by @abhinavsingh in #962
- Ignore
utf-8
decode error during logging by @abhinavsingh in #966 - On-demand
TlsInterception
capability, driven by plugins by @abhinavsingh in #965 - [WebServer] Fix routing by @abhinavsingh in #968
- pip prod(deps): bump furo from 2021.11.23 to 2022.1.2 by @dependabot in #959
- pip prod(deps): bump paramiko from 2.9.1 to 2.9.2 by @dependabot in #970
- Test submodule and refactor by @abhinavsingh in #971
- Handle
OSError
on shutdown &TimeoutError
on recv by @abhinavsingh in #974 - pip prod(deps): bump mypy from 0.920 to 0.931 by @dependabot in #976
- npm: bump @types/jquery from 3.5.4 to 3.5.13 in /dashboard by @dependabot in #975
- Refactor into separate
Work
module by @abhinavsingh in #977 - [TlsInterception]
v2.4.x
vsv2.3.1
differences by @abhinavsingh in #979 - [TlsInterception] GHA integration tests by @abhinavsingh in #981
- npm: bump typescript from 3.9.7 to 4.5.4 in /dashboard by @dependabot in #982
- pip prod(deps): bump types-paramiko from 2.8.6 to 2.8.9 by @dependabot in #983
- Pass separate
--ca-cert-dir
flag for parallel TLS interception tests by @abhinavsingh in #984 - [TlsInterception] Add more integration tests by @abhinavsingh in #986
- Add
# pragma: no cover
for unnecessary pieces of the code by @abhinavsingh in #987 - v2.4.0rc6 by @abhinavsingh in #964
- Expose
sleep_loop
for documentation and demo by @abhinavsingh in #991 - [SshTunnel] WIP by @abhinavsingh in #992
- [Middleware] Capability in the core to allow custom client connection classes by @abhinavsingh in #993
- [Middleware]
HttpClientConnection
preparation by @abhinavsingh in #995 - Bail out early for non-HTTP but HTTP looking protocols by @abhinavsingh in #972
- npm: bump eslint-plugin-import from 2.25.3 to 2.25.4 in /dashboard by @dependabot in #1005
- npm: bump ws from 8.4.0 to 8.4.2 in /dashboard by @dependabot in #1007
- [Windows] Fix broken
--local-executor
logic for windows by @sowmya-jaxl in #1008 - [Windows]
--threaded
mode integration tests works locally but fails on GHA by @sowmya-jaxl in #1009 - Restrict request handling to
DEFAULT_ALLOWED_URL_SCHEMES
by @abhinavsingh in #1002 - [Doc] Threadless Remote vs Local Execution Mode by @abhinavsingh in #1011
- [Coverage] For newly added components by @abhinavsingh in #1014
- [Devtools] Build as part of GHA workflow by @abhinavsingh in #1015
- [isort] Lib modules by @abhinavsingh in #1016
- v2.4.0rc7 by @abhinavsingh in #1010
- [Windows] Remove
--threadless
fromTestCase
by @abhinavsingh in #1025 - Handle
SIGINFO
. Trykill -s INFO <pid>
. by @abhinavsingh in #1024 - Add a skeleton app to demonstrate how to use
proxy.py
for standalone projects by @abhinavsingh in #1029 - Move
Tls
module within core by @abhinavsingh in #1030 - [ReverseProxy] Move within core lib with ability to write its plugin by @abhinavsingh in #1033
- [Multiport] Prepare for listening on multiple ports by @abhinavsingh in #1031
- [Multiport]
Acceptor
can now accept work from multiple descriptors by @abhinavsingh in #1036 - [ReverseProxy] Add integration tests by @abhinavsingh in #1037
- [ReverseProxyPlugin] Remove redundant
ca_file
flag when wrapping upstream by @abhinavsingh in #1046 - [SOCKS4] Packet parser & builder by @abhinavsingh in #1047
- [CacheByContentTypePlugin] Prepare for content type parsing by @abhinavsingh in #1038
- [Work] Refactor for generic work type by @abhinavsingh in #1048
- [Work] Refactor as FD work by @abhinavsingh in #1049
- [BaseRemoteExecutor] Base executor for processing work remotely by @abhinavsingh in #1050
- [Work]
kwargs
independentwork_klass
creation and work core by @abhinavsingh in #1051 - Pre
v2.4.0rc8
cleanups by @abhinavsingh in #1053 - v2.4.0rc8 by @abhinavsingh in #1052
- [Core] Invoke
selector.close
on shutdown by @abhinavsingh in #1055 - [CacheResponsesPlugin] Add ability to cache request packets by @abhinavsingh in #1056
- [Task] A generic payload based work abstraction by @abhinavsingh in #1057
jupyter
notebook based tutorial by @abhinavsingh in #1059--max-sendbuf-size
flag to speed up large file upload/download by @abhinavsingh in #1060- [Flags]
min_compression_length
consistency by @abhinavsingh in #1061 - [Fix] Using
okResponse()
without content hangs the connection by @abhinavsingh in #1062 - [Jupyter] Add a response notebook by @abhinavsingh in #1064
- [Optimize] Avoid using
tobytes
for zero-copies by @abhinavsingh in #1066 - [HttpParser] Memory view compliant, Zero copies by @abhinavsingh in #1067
- [Jupyter] Request creation notebook by @abhinavsingh in #1065
- v2.4.0rc9 by @abhinavsingh in #1068
- Add
--cache-by-content-type
flag by @abhinavsingh in #1070 - [CacheResponsesPlugin] Enhance cache by content type by @abhinavsingh in #1072
- [EventCore] Fix dispatcher exception during unsubcribe by @abhinavsingh in #1073
- [EventDispatcher] Guard against broken pipe and eof by @abhinavsingh in #1074
- [EventCore] Use
no_wait
when publishing to queues by @abhinavsingh in #1076 - [Examples] Fix broken examples by @abhinavsingh in #1077
- Allow multiport with ephemeral & unix socket support by @abhinavsingh in #1078
- v2.4.0 by @abhinavsingh in #1081
- Yaml lint by @abhinavsingh in #1082
New Contributors
- @akshgpt7 made their first contribution in #523
- @webknjaz made their first contribution in #641
- @imgbot made their first contribution in #644
- @JerryKwan made their first contribution in #740
- @sowmya-jaxl made their first contribution in #1008
Full Changelog: v2.3.1...v2.4.0