skillfed

parfive

A HTTP and FTP parallel file downloader.

parfive v2.3.1 120.0K downloads/30d#12,048 on PyPI
License unclear Copyright (c) 2017-2020 Stuart Mumford Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in… (full text in the JSON record) AGING released

What it is and what it does

Parfive is a file downloader that wraps asyncio to download multiple files concurrently while presenting a simple synchronous API. You create a Downloader object, enqueue one or more file URLs with target paths, and call download() to fetch them all in parallel. Each file can also be downloaded in chunks. The package depends on aiohttp for HTTP requests and tqdm for progress bars, and returns a Results object that tracks both successful downloads and any failures with their server responses.

The package is useful when you need to fetch many files efficiently without writing asyncio code yourself. It offers both a Python API and a command-line interface for quick downloads. Error handling is built in—failed downloads are captured in the Results object rather than raising exceptions, so you can retry or report them to users.

Use it for:

  • Download multiple data files from a remote server in a single batch operation with progress tracking.
  • Fetch a collection of assets or resources concurrently without blocking on each individual request.
  • Build a data pipeline that retrieves files from HTTP or FTP sources as part of a larger workflow.
  • Provide end users with a CLI tool to download multiple files at once with configurable concurrency limits.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Parfive downloads multiple files in parallel using asyncio, with a synchronous API that handles concurrent downloads and per-file chunking.

Yes, if you need straightforward parallel file downloads. The low install friction, stable API, and lack of known vulnerabilities make it a safe choice. The aging maintenance status (199 days since release) is a minor concern but not a blocker for stable use; consider it if you need active upstream support or if your use case requires recent dependency updates.

Install

parfive on PyPI

pip

pip install parfive

uv

uv add parfive

poetry

poetry add parfive

Installing parfive

Before you install

Low friction install with only two runtime dependencies (tqdm and aiohttp). Maintenance status is aging—last release was 199 days ago—but the package is marked Production/Stable and supports current Python versions through 3.13.

License in practice

MIT licensed under a permissive copyright (2017-2020 Stuart Mumford). No restrictions on commercial or private use; you may modify and distribute freely provided you include the license notice.

Quickstart

from parfive import Downloader
dl = Downloader()
dl.enqueue_file("http://example.com/file.zip", path="./")
files = dl.download()

Requires Python 3.10 or above.

Verify before relying

  • Whether the aging maintenance status (199 days since last release) affects reliability for new use cases or dependency updates.
  • Performance characteristics when downloading very large files or managing hundreds of concurrent connections.

Package facts

License Copyright (c) 2017-2020 Stuart Mumford Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in… (full text in the JSON record) (unclear)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 2 — tqdm, aiohttp
Maintenance aging — 199 days since the last release
First released
Downloads 119,971/month — #12,048 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: parfive-2.3.1-py3-none-any.whl

Development Status :: 5 - Production/StableProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Tags

parallel file downloaderasyncio download managerconcurrent http downloadsbatch file downloaderasync file fetchingparallel http ftp downloader
async-iodownload-manager

More WWW/HTTP packages