Development Status
- 5 - Production/Stable
Environment
- Web Environment
Intended Audience
- Developers
License
- OSI Approved :: GNU Library or Lesser General Public License (LGPL)
- OSI Approved :: MIT License
Operating System
- Microsoft :: Windows
- POSIX
Programming Language
- Python :: 3
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
Topic
- Internet :: File Transfer Protocol (FTP)
- Internet :: WWW/HTTP
PycURL is a Python interface to libcurl, the multiprotocol file transfer library. Similarly to the urllib Python module, PycURL can be used to fetch objects identified by a URL from a Python program. Beyond simple fetches however PycURL exposes most of the functionality of libcurl, including:
Speed - libcurl is very fast and PycURL, being a thin wrapper above libcurl, is very fast as well. PycURL was benchmarked to be several times faster than requests.
Features including multiple protocol support, SSL, authentication and proxy options. PycURL supports most of libcurl’s callbacks.
Sockets used for network operations, permitting integration of PycURL into the application’s I/O loop (e.g., using Tornado).
Requirements
Python 3.9-3.14.
libcurl 7.19.0 or better.
Installation
Download the source distribution from PyPI.
Please see the installation documentation for installation instructions.
Documentation
Documentation for the most recent PycURL release is available on PycURL website.
Support
For support questions please use curl-and-python mailing list. Mailing list archives are available for your perusal as well.
Although not an official support venue, Stack Overflow has been popular with some PycURL users.
Bugs can be reported via GitHub. Please use GitHub only for bug reports and direct questions to our mailing list instead.
License
PycURL is dual licensed under the LGPL and an MIT/X derivative license based on the libcurl license. The complete text of the licenses is available in COPYING-LGPL and COPYING-MIT files in the source distribution.