futures
Backport of the concurrent.futures package from Python 3
What it is and what it does
This package brings Python 3's concurrent.futures module to Python 2.6 and 2.7, enabling developers to write concurrent code using thread and process pools. It is a pure backport of the standard library module, allowing Python 2 codebases to use the same executor API that Python 3 provides natively.
The package is now abandoned and should only be installed for maintaining existing Python 2 codebases. The package explicitly warns against using ProcessPoolExecutor for mission-critical work due to unfixable problems. ThreadPoolExecutor is the safer choice if you must use this backport.
Use it for:
- Running background tasks concurrently in legacy Python 2 applications using ThreadPoolExecutor.
- Parallelizing work across multiple threads in Python 2 codebases with ThreadPoolExecutor.
- Conditional dependency in setup.py for packages that support both Python 2 and 3 using environment markers.
- Maintaining existing Python 2 applications that already depend on concurrent.futures.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Backport of Python 3's concurrent.futures module to Python 2.6 and 2.7, providing thread and process pool executors for parallel task execution.
No, unless you are actively maintaining a Python 2 codebase that requires concurrent.futures. The package is abandoned, and Python 3 includes concurrent.futures in its standard library. If you are on Python 3, do not install; if you must support Python 2, use ThreadPoolExecutor only and avoid ProcessPoolExecutor.
Install
futures on PyPI
pip
pip install futuresuv
uv add futurespoetry
poetry add futuresInstalling futures
Before you install
Low install friction with no runtime dependencies. However, the package is abandoned as of 2022-10-31 with no active maintenance. Only install if you are actively maintaining legacy Python 2 code.
License in practice
Licensed under the Python Software Foundation License (permissive), which allows use in proprietary and open-source projects with minimal restrictions.
Quickstart
pip install futures
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=4) as executor:
future = executor.submit(some_function, arg)
result = future.result()
Requires Python >=2.6, <3. Will not install on Python 3. ProcessPoolExecutor has known unfixable problems on Python 2 and should not be used for mission-critical work.
Verify before relying
- Whether the known ProcessPoolExecutor issues documented in Issue 29 affect your specific use case.
- Current state of downstream packages that may depend on this backport.
- Whether Python 2 end-of-life status impacts your deployment environment.
Package facts
| License | PSF (permissive) |
| Python support | capped below the current Python release (>=2.6, <3) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,383 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,123,547/month — #2,740 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: futures-3.4.0-py2-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
multiprocessingBackport of Python 2.6/3.0 multiprocessing to…
permissive · top 15,000 on PyPI
requests-futuresWraps the requests library to execute HTTP…
permissive · top 5,000 on PyPI
futuristFuturist provides futures utilities and…
permissive · top 15,000 on PyPI
Flask-ExecutorFlask-Executor wraps Python's…
permissive · top 15,000 on PyPI
fastcorefastcore extends Python with functional…
permissive · top 1,000 on PyPI
subprocess32A backport of Python 3's subprocess module to…
permissive · top 15,000 on PyPI
pqdmpqdm wraps tqdm and concurrent.futures to…
permissive · top 15,000 on PyPI
asyncioThis package is an obsolete backport of…
permissive · top 1,000 on PyPI
bounded-pool-executorWraps Python's ProcessPoolExecutor and…
permissive · top 15,000 on PyPI
Flask-ThreadsProvides thread and thread pool helpers that…
unclear · top 5,000 on PyPI