aioftp
ftp client/server for asyncio
Decision gist · record as of 2026-08-14
Yes. aioftp is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and integrates cleanly into asyncio-based applications with minimal dependencies. Install it if you need async FTP client or server functionality; the low friction and permissive license make it a straightforward choice for concurrent file transfer tasks.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; older versions (0.22.3 supports 3.8, 0.26.3 supports 3.9) available if needed.
- Low install friction with a single lightweight runtime dependency (typing-extensions).
- Actively maintained with a recent release (10 days old) and an active repository.
License · maintenance · safety
permissive license (permissive) — Apache 2.0 license is permissive, allowing commercial use, modification, and distribution with minimal restrictions—only requiring license and copyright notice preservation.
last release 2026-08-04 (10 days) · last repo commit 2026-08-11 · 210 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 415,509 downloads/mo, #6,826 on PyPI
Alternatives
Verify before relying
import asyncio
import aioftp
async def download_files(host, port, login, password):
async with aioftp.Client.context(host, port, login, password) as client:
for path, info in (await client.list(recursive=True)):
if info["type"] == "file":
await client.download(path)
asyncio.run(download_files("example.com", 21, "user", "pass"))- Whether the optional socks proxy support (via siosocks) is actively maintained or tested in current releases.
- Performance characteristics relative to other async FTP libraries in production workloads.
- Compatibility with non-standard or legacy FTP server implementations beyond the documented fallback to LIST.
What it is and what it does
aioftp is an async-native FTP client and server library built on Python's asyncio, designed to handle file transfer operations concurrently without blocking. It implements a core subset of FTP commands (USER, PASS, PWD, CWD, STOR, RETR, DELE, MLSD, and others) sufficient for typical file operations, with support for both passive mode transfers and concurrent client connections.
The library prioritizes a high-level, extensible API over raw protocol compliance. Clients can recursively list directories, download and upload files, and manage connections using async context managers. Servers can be instantiated with custom path I/O factories for flexible storage backends. The package is actively maintained, requires Python 3.10+, and has no known security vulnerabilities.
Use it for
- Downloading multiple files from FTP servers concurrently without blocking the event loop.
- Building an async FTP server for file distribution or backup systems within an asyncio application.
- Integrating FTP operations into async web frameworks or data pipelines that already use asyncio.
- Listing and filtering remote FTP directories recursively while handling multiple server connections in parallel.
- Uploading files to FTP servers from async applications without spawning threads or processes.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
aioftp is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and integrates cleanly into asyncio-based applications with minimal dependencies. Install it if you need async FTP client or server functionality; the low friction and permissive license make it a straightforward choice for concurrent file transfer tasks.
Install
aioftp on PyPI
Before you install
Low install friction with a single lightweight runtime dependency (typing-extensions). Actively maintained with a recent release (10 days old) and an active repository.
Requires Python 3.10 or later; older versions (0.22.3 supports 3.8, 0.26.3 supports 3.9) available if needed.
License in practice
Apache 2.0 license is permissive, allowing commercial use, modification, and distribution with minimal restrictions—only requiring license and copyright notice preservation.
Quickstart
import asyncio
import aioftp
async def download_files(host, port, login, password):
async with aioftp.Client.context(host, port, login, password) as client:
for path, info in (await client.list(recursive=True)):
if info["type"] == "file":
await client.download(path)
asyncio.run(download_files("example.com", 21, "user", "pass"))
Verify before relying
- Whether the optional socks proxy support (via siosocks) is actively maintained or tested in current releases.
- Performance characteristics relative to other async FTP libraries in production workloads.
- Compatibility with non-standard or legacy FTP server implementations beyond the documented fallback to LIST.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Actively maintained 10 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 415,509 / month, #6,826 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: Internet :: File Transfer Protocol (FTP) |
Evidence: aioftp-0.28.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “async ftp client server”
- aioftpaioftp provides an async FTP client and server implementation for…
- pyftpdlibBuilds asynchronous FTP servers in Python with RFC-959 compliance,…
- pytest-localftpserverProvides pytest fixtures for running local FTP and TLS-FTP servers in…
Give your agent the search over MCP, or paste the wish link into any chat.
More Internet packages
Botocore provides low-level, data-driven access to Amazon Web Services APIs, serving as the foundation for the AWS CLI and boto3 libraries.
Install it if you need programmatic access to AWS services.
Provides an async client for AWS services using botocore and aiohttp, allowing you to call AWS APIs asynchronously within asyncio-based applications.
Install it if you need to call AWS services from async Python code; it is the standard way to do so.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides common Protocol Buffer message definitions used across Google Cloud APIs, enabling Python clients to interact with Google services.
See also pyftpdlib · ftputil · parfive · apache-airflow-providers-ftp · asynch · aiotools · aioimaplib · aiohttp_socks · genie.libs.filetransferutils · throttler