Reversible by construction
Nothing touches the routing table without a snapshot first. Restore runs on exit, on crash recovery and on uninstall. If the product cannot be removed cleanly, it has no business being installed.
Dual Internet is built and supported by Anurag Sinha. No investors, no growth targets, no roadmap dictated by anything other than what people who use it ask for. That has trade-offs in both directions, and this page is honest about both.
Why it exists
The setup was ordinary: fibre that was fast but occasionally unstable, and a second line that was slower but dependable. Windows picked one by interface metric and ignored the other, so the second line sat there earning nothing while a game update ruined a call on the first.
The workaround was route add and a text file of interface indices. It
worked until a DHCP lease renewed, or Wi-Fi reconnected, or a CDN returned a new
address — at which point the entries were quietly wrong and the only symptom was
something feeling slow. And it could never do the thing actually wanted, which was
this application here and that one there, because the routing table
has no idea what a process is.
The filtering platform does know. That is the whole product: the mechanism that can express per-application routing, wrapped in something you would trust with your machine's routing table — with a snapshot, a restore, and a rule list you can read.
# routes.txt — DO NOT LOSE THIS
# if=14 is the LTE dongle (check with netsh!)
# if=8 is fibre, usually
route add 142.250.0.0 mask 255.255.0.0 10.24.0.1 if 14
route add 104.16.0.0 mask 255.240.0.0 10.24.0.1 if 14
# 2024-11-03: broke again after router reboot, if= changed
# 2024-11-19: steam ignores all of this anyway
# 2025-01-08: there has to be a better way
How it is built
These are the decisions that shaped the product. They cost features occasionally, and that is the intended trade.
Nothing touches the routing table without a snapshot first. Restore runs on exit, on crash recovery and on uninstall. If the product cannot be removed cleanly, it has no business being installed.
Not opt-out, not anonymised, not "to improve the product". A tool that watches your network connections has no business reporting anything anywhere. Every outbound request is one you configured.
IP Helper and the Windows Filtering Platform, both used as documented. No undocumented calls, no patching, no driver of our own. It survives Windows updates because it is not relying on anything Microsoft did not intend.
The honest limits section exists because a tool that overstates what it can do wastes your money and your evening. Existing connections do not move; two lines do not become one faster line.
Every capability is reachable from the window; scripting surfaces are planned rather than shipped.
Objects out, stable exit codes, --json everywhere. If it can only be done
by clicking, it is not finished.
A perpetual licence, because software that stops working when a payment stops is a rental. The version you bought keeps running whatever happens to the business behind it.
Under the hood
Boring choices on purpose. Every one of these is something that will still be maintainable in five years.
Runtime
.NET 8 LTS, bundled in the installer so there is no prerequisite to chase.
Interface
WPF with MVVM. Native Windows widgets, no embedded browser, no 200 MB download.
Routing
IP Helper via P/Invoke for the forwarding table, WFP for per-process and per-port decisions.
Storage
SQLite. One file, no server, no schema you cannot inspect with any tool you like.
Scripting
None yet. A CLI and a PowerShell module are planned; neither is in this release.
Testing
xUnit with FluentAssertions for the rule engine and route calculation; manual verification for real-network behaviour.
Why not cross-platform, or a web interface?
Because the entire product is Windows kernel networking APIs. A cross-platform abstraction over WFP and Linux policy routing would be a lowest-common-denominator version of both, and a web interface would mean shipping a browser engine to render a list of processes. Native is smaller, faster, and honest about what it is.
Technical, commercial or sceptical. If something on this site does not add up, say so and it gets fixed or explained.