puf: Waiting for its moment to shine

Right off the bat, let’s make it clear that puf is short for parallel URL fetcher.

Now that that’s out of the way, let’s take a closer look.


What’s happening here is that puf is … well, downloading from a URL, much like some other download tools we’ve seen. 😐

It’s not visible in my screenshot there, but apparently puf’s claim to fame is that it can handle multiple connections to retrieve files.

If you squint at the screenshot, you might make out “Connections” with a current and max column beneath it. I had only one connection working, but as you can also see, puf seems to be prepared to handle as many as 20.

All of which is subject to your line speed and bandwidth controls, but as you might imagine, on a proper high-speed connection, puf might prove … very intriguing.

Now for the downsides: puf is already a decade old, and doesn’t seem to have been updated in quite a while. Further, puf isn’t really so much a download manager as a souped-up rendition of wget or curl, prepared to make multiple connections to yank files out of the ether.

And it doesn’t handle multiple simultaneous downloads. Or have a download queue to speak of. And it doesn’t search out alternative targets, like axel does.

And judging by the home page, puf really only handles HTTP addresses. aria2 this is not.

And of course, if you’re trapped on a low-speed network, multiple connections downloading at 56K modem rates isn’t going to thrill anyone. (You have my sympathies, by the way. I lived through the 56K era. 😯 )

Point being, puf may on occasion, in certain situations, when the time is right, at a precious moment, in dire circumstances … be just the right tool.

Outside of that though, it might only be a second-string download utility 10 years beyond its last update. 😕 😦

1 thought on “puf: Waiting for its moment to shine

  1. Philipp Pirozhkov

    $ xargs -n1 -P10 -0 -d”\n” -I{} wget {} <$1

    Does its job pretty good, including re-connection and parallel download, rendering these kind of tools unnecessary.

Comments are closed.