Development site, not farwing.io. This build is 0.8.0-dev. The server image is ghcr.io/farwing-io/server:dev.

File transfer for long, lossy networks

Far is fast now.

Send huge files across the world at full speed, even over bad networks.

farwing cp big.iso user@sydney:/data/

Free for any use. No limit on copies at once, up to 1 Gbit/s in total unless a license file raises it. A higher --max-rate does not. Farwing Server goes to 10 Gbit/s and beyond.

Oregon USA Sydney Australia
11 Gbit/s18,000× faster than standard TCP11 Gbit/s vs 0.6 Mbit/s for standard TCP (CUBIC, the Linux default) · Oregon to Sydney · 139 ms · 3 in every 100 packets lostNo loss added: 11.5 Gbit/s on about 2 of 16 cores.How we tested
11.3 Gbit/s
Oregon to Sydney through 1% packet loss
4.1 s
to copy 1 GiB on that path. scp stalled before a complete file.
8.0×
faster than TCP BBR at 1% loss, and ahead of 8 parallel BBR streams
11.5 Gbit/s
the whole path with no loss added, on about 2 of 16 CPU cores

TCP thinks a lost packet means a full road. On a long path, it usually doesn't.

A long path loses packets for ordinary reasons. An ocean cable, a satellite hop, a cross-country land route, a busy exchange, old hardware. That loss is not a full road. Standard TCP backs off every time, and the longer the delay, the longer it takes to speed up again.

Farwing does not slow down for that loss. It watches one thing: whether a queue is building in the network. If the delay grows, it eases off. If not, it keeps the link full and sends the missing blocks again, lowest first. The rougher the path — more delay, more loss — the further standard copy tools fall behind.

Measured, not modeled

Across the Pacific, at every loss level.

Oregon to Sydney, 139 ms round trip. 20-second runs, median of three. Useful data delivered per second, in Mbit/s. This is the ocean path we measure. A satellite hop or a long overland path with the same delay and loss is the same problem: the rougher that road, the wider the gap against standard tools.

Farwing8 × TCP BBR streamsTCP BBRTCP CUBIC (Linux default)

Every speed claim is measured. See how.

Median of three runs, on the same hosts and path for every tool. Loss is added on the sending side; TCP was tuned for this path.All results and method

One gigabyte across the Pacific. About five seconds.

A real 1 GiB copy, Oregon to Sydney, timed from the start of the command to a checked file on disk, against HTTP, UDT, Tsunami, and scp on the same path. Each run had 5 minutes to finish. Oceans are the long case we time most often. Satellite links and cross-continent land paths are the same kind of road, and standard tools fall further behind as the delay and the loss go up.

Farwing times are repeat copies to the same host. The benchmarks page also times a first copy to a new host, with putting Farwing there.

No added loss
Farwing
2.3 s
HTTP
4.0 s
UDT
23 s
Tsunami
5.0 s
scp
82 s
0.1% loss
Farwing
2.3 s
HTTP
stalled
UDT
68 s
Tsunami
91 s
scp
stalled
1% loss
Farwing
4.1 s
HTTP
stalled
UDT
266 s
Tsunami
stalled
scp
stalled
3% loss
Farwing
4.7 s
HTTP
stalled
UDT
stalled
Tsunami
stalled
scp
stalled
Bars on a 5-minute scale. Median of three runs, on the same hosts and path for every tool. Stalled means the copy was still running, had errored, or had made no progress when that limit ended.
Transfer calculator

How long will your copy take?

Pick a file, a link and two places on the map. The estimate comes from our own measured runs: Farwing against the standard TCP that most copy tools use, or against scp.

Plan
Copy
Compare with
Farwing transfer time
1 min 31 s
Standard TCP: 7.7 days
Speed-up
7,345×
faster than standard TCP on this path
Throughput
9.50 Gbit/s
Standard TCP: 1.2 Mbit/s
Link used
95%
Standard TCP: 0%
How it works

Works like scp. Flies like nothing else.

Starts with SSH

It logs in with your normal SSH access and starts its own receiver on the far host. No daemon to install, no new accounts.

Encrypted end to end

Every session gets fresh keys. Every packet is encrypted and checked with AES-256-GCM. The secret travels inside the SSH session.

Ignores random loss

It slows down only when the delay grows, which means a router queue is filling. It keeps that queue to a few milliseconds.

Finds a way through

UDP blocked? It moves to eight parallel TCP streams. TCP blocked too? It goes through SSH. Same command, same encryption.

Picks up where it stopped

If a copy breaks, run the same command again. Farwing skips the blocks already on disk, on every route, both directions.

Checked as it lands

The whole file is checked with BLAKE3 while it is written, in any order. The check ends milliseconds after the last block. Until then the file keeps a temporary name.

Four lanes, one copy

One copy runs as four coupled lanes, each on its own CPU core. Together they pass per-flow speed limits. At 11.5 Gbit/s, all four together kept about 2 of 16 cores busy.

Remembers the path

Each copy records what the path carried. The next copy to that host starts near full speed, not from zero.

01 · first choice
Encrypted UDP
Its own speed control and loss recovery. Port 47700.
02 · no answer in 3 s
8 × TCP streams
Encrypted 1 MiB chunks over parallel connections, with BBR.
03 · ports closed too
Through SSH
Each stream rides its own SSH session. It still gets there.
04 · from the browser
HTTPS
Farwing Desktop and Farwing Server fall back to the web port when nothing else is open.

Fast. You set the manners.

On a path of its own, Farwing takes all of it. On a link you share, you choose how much it takes.

One flag picks the manners for a copy. Farwing Server sets the same limits for each person and group.

--policy autoDefault. Finds the path rate, keeps the router queue to a few milliseconds, ignores random loss.
--lanes 1One flow instead of four. Behaves like a single connection on a shared link.
--policy backgroundGives way to all other traffic. For bulk copies that must not disturb anyone.
--policy fixed -l 900mA steady rate, for links you own. Stops itself if most packets are lost.
Products

One engine. Three ways to fly.

For engineersFree

Farwing

scp-style copies from the terminal. As many at once as you need, sharing 1 Gbit/s in total on each machine. A licensed Farwing Server at the far end sets its own speed.

  • Any use, including commercial
  • No limit on copies at once
  • 1 Gbit/s in total, unless a license file raises it
  • Linux, macOS and Windows
Download
For people who receive filesFree

Farwing Desktop

Opens when you click a Farwing link. A licensed Farwing Server sets the speed of its transfers, and every file shows as verified.

  • No account, no setup
  • Pause, resume, retry
  • Windows, macOS and Linux
Get Farwing Desktop
For teamsFrom $3,600 a year

Farwing Server

A web portal on your own server for sending, receiving and automating transfers.

  • Packages, shared folders, guests
  • Hot folders, sync, S3 and the API on every paid plan
  • Free mode for 5 users, no license needed
Start a 30-day trial

Named for a far wing.

Each autumn, the bar-tailed godwit leaves Alaska and flies about 12,000 km to New Zealand without a single stop. Eight to eleven days over open ocean, through storms, with no rest and no shortcut. It is built for the distance.

Farwing is built the same way.

Source
Quick start

Three commands to the other side.

Install Farwing on both hosts. You need an SSH login to the far host. For full speed, let the far host accept UDP on port 47700. If it does not, Farwing finds another route.

  1. 1 Install it

    curl -fsSL -o farwing-install.sh https://dev.farwing.io/install.sh bash ./farwing-install.sh --version dev
  2. 2 Copy a file, the way scp does

    farwing cp big.iso user@host:/data/
  3. 3 Test the path, no disk used

    farwing bench user@host --size 5G

Your files. The far side. Full speed.

Start free from the terminal, or run Farwing Server for your whole team. Every server can start a 30-day trial with every feature, from its own license page.

Get started freeStart a 30-day trial