Braid 0.1.0-beta.2
Pre-releaseBraid splits one download across every network path you have, and from this beta that
includes a phone's mobile data. Wi-Fi, Ethernet and a paired phone pull the same file
at once, reassembled exactly.
New: phones as download paths
Pair an Android phone and each network it offers becomes its own path, weighted
independently against your own cards.
- Pairing is a code on screen. Press Add phone in the sidebar, then Show
code, and point the phone at it. Nothing typed, and nothing that depends on
multicast surviving your network. - The phone decides what it lends and how much data it will spend. Switch mobile
sharing on there and the path appears here by itself. Braid displays what it is told
and enforces nothing of its own. - A phone that sleeps, runs out of allowance or walks out of range costs its own
path and never the file. Its work moves to the paths that remain. - A path that is your own connection wearing a second name is detected by comparing
the address each one leaves from, and shown switched off with that reason rather than
counted twice.
The companion is Braid for Android,
released separately as a signed APK.
Fixed since beta 1
- Pausing kept spending mobile data. Cancellation was checked only between chunks,
so a pause left every chunk in flight running to the end on every path at once. - A relay that refused us failed the whole download instead of costing that one
path. - Progress could step backwards after a retry.
- Path throughput was only recalculated when a chunk completed, so a slow path
reported a figure minutes old and the scheduler weighted it on that. - Byte figures were binary arithmetic wearing decimal labels. They are KiB, MiB and
GiB now, which is what the arithmetic always was. No number changed, only its name. - The Inspector drew its piece grid on two tabs and rebuilt it ten times a second,
which made the window sluggish whenever it was open. - Interfaces appearing after launch, a tether or a cable, were never noticed until
the application restarted.
Which file
| Platform | Download |
|---|---|
| macOS, Apple silicon and Intel | Braid-0.1.0-macos.dmg (one universal build) |
| Windows x86_64 | braid-0.1.0-x86_64.msi |
| Windows on ARM | braid-0.1.0-aarch64.msi |
| Debian, Ubuntu x86_64 | braid_0.1.0-1_amd64.deb |
| Debian, Ubuntu ARM64 | braid_0.1.0-1_arm64.deb |
| Fedora, RHEL x86_64 | braid-0.1.0-1.x86_64.rpm |
| Fedora, RHEL ARM64 | braid-0.1.0-1.aarch64.rpm |
| Android 8+ | braid-android |
Every package installs the application (braid) and the command line tool (dl).
Before you install
Nothing here is code signed. macOS will refuse to open the app on a double click:
right click it, choose Open, and confirm once. Windows SmartScreen will warn for the
same reason. If that is not acceptable, build from source.
macOS will ask for local network access the first time you look for a phone.
Without it the desktop cannot reach one at all, and the failure looks like the phone
not being there.
Known limitations
Braid is developed on a Mac. The Windows and Linux builds pass the full test suite
in CI on every push, but nobody has sat in front of those desktops and used the
application.
- Nobody has installed the Windows packages. CI builds them and WiX accepts them,
which proves they compile and link and nothing more. - Windows interface binding is written from Microsoft's documentation, not from
experiment.IP_UNICAST_IFfollows the docs and the app reports the mechanism
actually in force, but no machine with two live NICs has run it. - Windows on ARM is built and packaged, and has no test job.
- A torrent uses one interface at a time. Its peer connections could be spread
across several, and are not yet. - Cross-application drag and drop does not work on any platform. Links arrive
through the system handler, the clipboard or the command line. - A camera has read the pairing code on one phone model. If yours will not scan it,
the address is printed under the code and can be typed.
Reporting something
Open an issue with the platform, the kind of transfer, and what the Inspector showed.
If a file came out wrong, say so first and loudly: that is the one bug class this
project exists to not have.