
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
A SOCKS proxy that balances traffic between network interfaces.
Should work on macOS, Windows, and Linux.
This is a python rewrite of dispatch a rust rewrite of dispatch-proxy, originally written in CoffeeScript and targeting Node.js.
pip install dispatch-proxy
You'll need Python 3.7 or later.
git clone https://github.com/tboy1337/dispatch-py.git
cd dispatch-py
pip install -r requirements.txt
You often find yourself with multiple unused internet connections—be it 5G mobile hotspot or a free Wi-Fi network—that your system won't let you use alongside your primary one.
For instance, you might have a cabled and wireless internet access, each separately capped at a specific bandwidth. By combining all of these with dispatch-py and a download manager, you can achieve a higher effective bandwidth!
Whenever the SOCKS proxy server receives a connection request to an address or domain, it selects one of the provided local addresses using the Weighted Round Robin algorithm. All further connection traffic will then go through the interface corresponding to the selected local address.
Important: Unlike true channel bonding, each individual connection only uses one interface. The bandwidth improvement comes from distributing multiple connections across multiple interfaces.
Example: If you have a 100Mbps Ethernet and a 50Mbps Wi-Fi:
Beware: If the requested address or domain resolves to an IPv4 (resp. IPv6) address, an IPv4 (resp. IPv6) local address must be provided.
The possibilities are endless:
$ dispatch --help
Usage: dispatch [OPTIONS] COMMAND [ARGS]...
A SOCKS proxy that balances traffic between network interfaces.
Options:
-d, --debug Write debug logs to stdout instead of a file
--version Show the version and exit.
--help Show this message and exit.
Commands:
list Lists all available network interfaces
start Starts the SOCKS proxy server.
$ dispatch start --help
Usage: dispatch start [OPTIONS] ADDRESSES...
Starts the SOCKS proxy server.
Options:
--ip TEXT Which IP to accept connections from
--port INTEGER Which port to listen to for connections
--help Show this message and exit.
$ dispatch list
Lists all available network interfaces.
$ dispatch start 10.0.0.0 fdaa:bbcc:ddee:0:1:2:3:4
Dispatch incoming connections to local addresses 10.0.0.0
and fdaa:bbcc:ddee:0:1:2:3:4
.
$ dispatch start 10.0.0.0/7 10.0.0.1/3
Dispatch incoming connections to 10.0.0.0
7 times out of 10 and to 10.0.0.1
3 times out of 10.
If you don't want to install the package, you can run directly using:
python run_dispatch.py list
or
python run_dispatch.py start 10.0.0.0
For testing dispatch-py
without requiring multiple physical network interfaces, a simulated network testing framework is included. This allows testing the load balancing functionality across multiple virtual interfaces with configurable properties:
To run the simulated network tests:
python run_simulated_tests.py
Options:
--verbose
/ -v
: Set verbosity level (0-3)--fail-fast
/ -f
: Stop on first test failure--all
/ -a
: Run all tests, not just the simulated ones--test
/ -t
: Run a specific test module (e.g., test_network_simulator
)The simulated network testing works by:
This allows comprehensive testing of dispatch's behavior with different network conditions without requiring multiple physical connections.
This project is licensed under the terms of the MIT License.
To run all tests, use:
pytest
Ensure all dependencies are installed with:
pip install -r requirements.txt
FAQs
A SOCKS proxy that balances traffic between network interfaces
We found that dispatch-proxy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.