Skip to content

Latest commit

 

History

51 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Speedy Bonding

Speedy Bonding hero

A Windows desktop SOCKS5 load balancer for using multiple Internet connections with IDM—with optional Steam-only routing.

CI License: MIT Platform: Windows

Speedy Bonding turns usable IPv4 interfaces—Wi‑Fi, broadband/RAS, Ethernet, or mobile links—into one local SOCKS5 entry point. Each new proxy connection is bound to a selected source address, so multi-connection applications can use more than one path.

Important: this is weighted connection load balancing, not packet-level multipath bonding. A single TCP connection stays on the interface where it started. IDM and Steam can benefit when they open several concurrent connections, but the byte split will not always be exactly 50/50.

What it does

  • Detects usable, non-virtual IPv4 interfaces and re-scans them while the proxy is running.
  • Opens a loopback-only SOCKS5 server at 127.0.0.1:8080.
  • Lets you assign a percentage to each connection; the total must equal 100%.
  • Binds outbound TCP and UDP relay sockets to the selected local IPv4 address.
  • Includes an optional Steam Mode that routes steam.exe, steamwebhelper.exe, steamservice.exe, and GameOverlayUI.exe through the bonded proxy while other traffic remains direct.
  • Keeps the normal Local Proxy workflow available for IDM and other SOCKS5-aware applications.

Screenshots and architecture

Speedy Bonding architecture

The generated hero artwork is intentionally presentation-only. The architecture diagram is the source-of-truth for the actual routing model.

Quick start

Run from source

Requirements: Windows 10/11, Node.js 20+, npm, and two or more usable IPv4 Internet paths.

npm ci
npm run prepare-runtime
npm run lint
npm run start

Use IDM

  1. Turn Local Proxy on.
  2. Leave the connection percentages at 50/50 for an equal starting point, or tune them to match your line speeds.
  3. In IDM, set SOCKS5 to host 127.0.0.1, port 8080.
  4. Start a download with multiple IDM connections.

Use Steam Mode

  1. Open Steam first.
  2. Turn Local Proxy on.
  3. Turn Steam Mode on and approve the Windows administrator prompt.
  4. Pause/resume a download after enabling the mode so Steam creates fresh connections.

Steam Mode is process-aware, not download-aware: it detects that Steam is running and routes matching Steam processes whenever they generate traffic. The temporary SpeedyGlobal adapter exists only while Steam Mode is active.

How the routing works

IDM / Steam / another SOCKS5 client
                |
                v
       127.0.0.1:8080 SOCKS5
                |
       weighted connection picker
          /                 \\
         v                   v
 Wi-Fi source IPv4     Broadband/RAS source IPv4
         \\                   /
          v                 v
         Internet paths used by separate connections

Steam Mode adds a Windows TUN layer in front of the same local SOCKS5 server. Its process rule sends Steam traffic to bonded; the final route for non-Steam traffic is direct.

Verification

npm run lint
npm run typecheck
npm run package

To validate routing locally, inspect the Steam Mode log at:

%APPDATA%\Speedy Bonding\global-mode\sing-box.log

outbound/socks[bonded] means a matched Steam connection used the bonded proxy. outbound/direct[direct] means traffic followed the direct fallback.

FAQ

Is Speedy Bonding true packet-level Internet bonding?

No. It is a local weighted SOCKS5 proxy that distributes separate outbound connections across eligible IPv4 interfaces. A single TCP connection remains on the interface selected when it starts.

How do I use Speedy Bonding with IDM?

Enable Local Proxy, then set IDM to SOCKS5, host 127.0.0.1, port 8080, with no username or password. IDM downloads with multiple connections can then use multiple selected paths.

Can one download use Wi-Fi and Ethernet at the same time?

Only when the application opens multiple connections. Speedy does not split one TCP flow packet-by-packet, and it cannot guarantee an exact 50/50 byte split or a specific speed increase.

What is Steam Mode?

Steam Mode is an optional process-scoped Windows TUN route. It matches Steam-related processes and sends their traffic through the local SOCKS5 load balancer while other traffic stays direct.

Limitations and safety

  • The app does not create a single packet-level bonded tunnel. For that, use a multipath VPN or a server-assisted bonding product.
  • Windows must have a real IPv4 address and route for an interface to be usable; an APIPA address such as 169.254.x.x is excluded.
  • Steam games are not automatically included just because Steam is included. Add and verify game executable names before claiming game traffic is bonded.
  • The unauthenticated SOCKS5 listener binds to loopback only. Do not change it to 0.0.0.0 without adding authentication and a firewall policy.
  • Steam Mode requires elevation to create and remove its temporary TUN adapter.
  • This project is a public preview. Test with a small download before relying on it for a long transfer.

Contributing

See CONTRIBUTING.md for the development workflow and SECURITY.md for private vulnerability reports.

Good first contributions include connection-rate telemetry, byte-aware scheduling, stronger Steam-mode health reporting, and focused Windows integration tests.

Attribution

Speedy Bonding is a maintained fork of the open-source RezaRafia/Speedy project. The original project and its author are credited here; this repository contains MHJoy99's Windows routing, SOCKS5, Steam Mode, packaging, and documentation changes.

License

MIT. See LICENSE.

About

Windows multi-connection SOCKS5 load balancer for IDM with optional Steam-only routing

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages