Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

libcurl-ct

Python binding for the libcurl C library.

Overview

Python libcurl-ct module is a low-level binding for libcurl C library.
It is an effort to allow python programs full access to the API implemented and provided by the well known *libcurl* library.

PyPI record.

Documentation.

libcurl-ct is a lightweight Python package, based on the ctypes library.
It is fully compliant implementation of the original C libcurl API by implementing whole its functionality in a clean Python instead of C.

libcurl API documentation can be found at:

libcurl API overview

libcurl-ct uses the underlying libcurl C shared library as specified in libcurl.cfg (included libcurl-X.X.* is the default), but there is also ability to specify it programmatically by one of the following ways:

import libcurl
libcurl.config(LIBCURL="libcurl C shared library absolute path")
# or
libcurl.config(LIBCURL=None)  # included libcurl-X.X.* will be use

About original libcurl:

Borrowed from the original website:

libcurl - the multiprotocol file transfer library

Overview

libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.

libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and more!

libcurl is highly portable, it builds and works identically on numerous platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS and more…

libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported, fast, thoroughly documented and is already used by many known, big and successful companies.

Requirements

  • It is a fully independent package.
    All necessary things are installed during the normal installation process.
  • ATTENTION: currently works and tested only for Windows.

Installation

Prerequisites:

To install run:

python -m pip install --upgrade libcurl-ct

Development

Prerequisites:

  • Development is strictly based on tox. To install it run:

    python -m pip install --upgrade tox

Visit Development page.

Installation from sources:

clone the sources:

git clone https://github.com/karpierz/libcurl.git libcurl-ct

and run:

python -m pip install ./libcurl-ct

or on development mode:

python -m pip install --editable ./libcurl-ct

License

Copyright (c) 2021-2025 Adam Karpierz
Licensed under the MIT License
Please refer to the accompanying LICENSE file.

Authors

Changelog

8.12.1.4b1 (2025-03-01)

  • Add support for Python 3.12 and 3.13

  • Drop support for Python 3.7 and 3.8

  • Add support for PyPy 3.10 and 3.11

  • Drop support for PyPy 3.7, 3.8 and 3.9

  • Upgrade: libcurl v.7.84.0 -> v.8.12.1

  • Bugfix for type of version_info_data.feature_names.

  • Bugfix for write_to_fd.

  • Previously unavailable obsoleted strequal() and strnequal()
    are curently available.
  • Previously unavailable deprecated escape() and unescape()
    are curently available.
  • Tox configuration has been moved to pyproject.toml
    and now based on tox >= 4.0
  • Many bugs fixed.

  • Copyright year update.

  • 100% code linting.

  • Cleanup.

  • Setup (dependencies) update.

7.84.0a2 (2022-08-27)

  • Upgrade: libcurl v.7.81.0 -> v.7.84.0

  • Add support for Linux.

  • Add support for Python 3.10 and 3.11

  • Add support for PyPy 3.7, 3.8 and 3.9

  • Added a performance util tests/sprinter.py

  • Setup update (currently based mainly on pyproject.toml).

7.81.0a2 (2022-01-26)

  • Rename PyPi package to libcurl-ct due to name conflict.

7.81.0a1 (2022-01-26)

  • First release.

0.0.1 (2021-06-16)

  • Initial release.

Release files for libcurl-ct 8.12.1.4b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for libcurl-ct 8.12.1.4b1
File Size Uploaded
libcurl_ct-8.12.1.4b1.tar.gz 5.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for libcurl-ct 8.12.1.4b1
File Interpreter ABI Platform
libcurl_ct-8.12.1.4b1-py3-none-any.whl Python 3 none any Details

Total release size: 10.1 MB

Release files / libcurl_ct-8.12.1.4b1.tar.gz

Download URL libcurl_ct-8.12.1.4b1.tar.gz
Size 5.5 MB
Tags Source
SHA-256 checksum
How to use checksums
2717f3723112b889d1f82b8d5288a020c934c8d542d1b37232c2025414af20f9
BLAKE2b-256 checksum
How to use checksums
7d3708c98a62c7a3d1185bfd6f37c54d80ede0933c6e5bc846b601d2c929a060
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / libcurl_ct-8.12.1.4b1-py3-none-any.whl

Download URL libcurl_ct-8.12.1.4b1-py3-none-any.whl
Size 4.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
61d919e3d83c663794b312d2e6ba7fbf1405da103b3393f2ed7c5e334d391fc8
BLAKE2b-256 checksum
How to use checksums
eefb437ff73baa0a24b4a5ce57e503aa84ee356ac54a586675be31a2d06d3600
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page