{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/11"},{"label":"Filesystems","url":"https://skillfed.io/packages/category/system-filesystems"},{"label":"File Transfer Protocol (FTP)","url":"https://skillfed.io/packages/category/internet-file-transfer-protocol-ftp"}],"enrichment":{"capability":"Builds asynchronous FTP servers in Python with RFC-959 compliance, supporting FTPS, IPv6, and concurrent client handling through event-driven I/O.","skillfed_tags":["ftp-server","async-io","network-protocol"],"use_cases":["Embed an FTP server directly in a Python application to serve files to remote clients without spawning a separate process.","Set up a quick file-sharing server with command-line flags (e.g., `python3 -m pyftpdlib --write`) for ad-hoc file distribution.","Build a custom FTP service with virtual users and per-user filesystem restrictions using the DummyAuthorizer or custom authorizer classes.","Handle many concurrent FTP clients efficiently in a single process using asynchronous I/O instead of forking or threading.","Implement FTPS (FTP over TLS) for encrypted file transfers in environments where traditional FTP is insufficient."],"what_it_does":"pyftpdlib is a pure-Python library for building FTP servers that handle concurrency asynchronously using event-driven I/O (epoll, kqueue, or select). It implements RFC-959 FTP and supports modern extensions like FTPS encryption, IPv6, Unicode filenames, and the MLSD/MLST commands. The library can run as a standalone command-line server or be embedded in an application via its API, with pluggable authorizers for managing virtual and real users on both Unix and Windows.\n\nThe package depends on pyasynchat and pyasyncore, which are maintained backports of Python's deprecated stdlib async modules. It is actively maintained and positioned as a lightweight alternative to traditional FTP daemons like vsftpd or proftpd, trading some raw throughput for better concurrent-client scaling in single-process mode. It is suitable for scenarios where you need to embed FTP capability in a Python application or run a quick file-sharing server without external dependencies.","worth_installing":"Yes, if you need to embed FTP capability in a Python application or run a lightweight FTP server. The library is actively maintained, has no known vulnerabilities, and is production-stable. However, install friction is high due to backport dependencies (pyasynchat, pyasyncore), and the license status is unclear\u2014verify the license before use in proprietary contexts. Not recommended if you need a standalone, battle-tested FTP daemon; use vsftpd or proftpd instead."},"id":"pyftpdlib","links":{"html":"https://skillfed.io/packages/pyftpdlib","md":"https://skillfed.io/packages/pyftpdlib.md","pypi":"https://pypi.org/project/pyftpdlib/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-02-07","license_spdx":null,"license_treatment":"unclear","name":"pyftpdlib","python_support":"supports_current","summary":"Very fast asynchronous FTP server library"},"popularity":{"monthly_downloads":592649,"position":5852,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.2.0"}
