1Release Notes 2============= 3 4PycURL 7.44.1 - 2021-08-15 5-------------------------- 6 7This release repairs incorrect Python thread initialization logic which 8caused operations to hang. 9 10PycURL 7.44.0 - 2021-08-08 11-------------------------- 12 13This release reinstates best effort Python 2 support, adds Python 3.9 and 14Python 3.10 alpha support and implements support for several libcurl options. 15 16Official Windows builds are currently not being produced. 17 18PycURL 7.43.0.6 - 2020-09-02 19---------------------------- 20 21This release improves SSL backend detection on various systems, adds support 22for libcurl's multiple SSL backend functionality and adds support for several 23libcurl options. 24 25PycURL 7.43.0.5 - 2020-01-29 26---------------------------- 27 28This release fixes a build issue on recent Pythons on CentOS/RHEL distributions. 29 30It also brings back Windows binaries. Special thank you to Gisle Vanem for 31contributing the nghttp2 makefile. 32 33 34PycURL 7.43.0.4 - 2020-01-15 35---------------------------- 36 37This release improves compatibility with Python 3.8 and removes support for 38Python 2 and Python 3.4. It also adds wolfSSL support and thread safety of 39the multi interface. 40 41 42PycURL 7.43.0.3 - 2019-06-17 43---------------------------- 44 45This release primarily fixes an OpenSSL-related installation issue, and 46repairs the ability to use PycURL with newer libcurls compiled without FTP 47support. Also, mbedTLS support has been contributed by Josef Schlehofer. 48 49 50PycURL 7.43.0.2 - 2018-06-02 51---------------------------- 52 53Highlights of this release: 54 551. Experimental perform_rs and perform_rb methods have been added to Curl 56 objects. They return response body as a string and a byte string, 57 respectively. The goal of these methods is to improve PycURL's usability 58 for typical use cases, specifically removing the need to set up 59 StringIO/BytesIO objects to store the response body. 60 612. getinfo_raw and errstr_raw methods have been added to Curl objects to 62 return transfer information as byte strings, permitting applications to 63 retrieve transfer information that is not decodable using Python's 64 default encoding. 65 663. errstr and "fail or error" exceptions now replace undecodable bytes 67 so as to provide usable strings; use errstr_raw to retrieve original 68 byte strings. 69 704. There is no longer a need to keep references to Curl objects when they 71 are used in CurlMulti objects - PycURL now maintains such references 72 internally. 73 745. Official Windows builds now include HTTP/2 and international domain 75 name support. 76 776. PycURL now officially supports BoringSSL. 78 797. A number of smaller improvements have been made and bugs fixed. 80 81 82PycURL 7.43.0.1 - 2017-12-07 83---------------------------- 84 85This release collects fixes and improvements made over the past two years, 86notably updating Windows dependencies to address DNS resolution and 87TLS connection issues. 88 89 90PycURL 7.43.0 - 2016-02-02 91-------------------------- 92 93Highlights of this release: 94 951. Binary wheels are now built for Windows systems. 96 972. setopt_string method added to Curl objects to permit setting string libcurl 98 options that PycURL does not know about. 99 1003. curl module can now be imported on Windows again. 101 1024. OPENSOCKETFUNCTION callback is now invoked with the address as bytes on 103 Python 3 as was documented. 104 1055. Support for many libcurl options and constants was added. 106 107 108PycURL 7.21.5 - 2016-01-05 109-------------------------- 110 111Highlights of this release: 112 1131. Socket callbacks are now fully implemented (``CURLOPT_OPENSOCKETFUNCTION``, 114 ``CURLOPT_SOCKOPTFUNCTION``, ``CURLOPT_CLOSESOCKETFUNCTION``). Unfortunately 115 this required changing ``OPENSOCKETFUNCTION`` API once again in a 116 backwards-incompatible manner. Support for ``SOCKOPTFUNCTION`` and 117 ``CLOSESOCKETFUNCTION`` was added in this release. ``OPENSOCKETFUNCTION`` 118 now supports Unix sockets. 119 1202. Many other libcurl options and constants have been added to PycURL. 121 1223. When ``pycurl`` module initialization fails, ``ImportError`` is raised 123 instead of a fatal error terminating the process. 124 1254. Usability of official Windows builds has been greatly improved: 126 127 * Dependencies are linked statically, eliminating possible DLL conflicts. 128 * OpenSSL is used instead of WinSSL. 129 * libcurl is linked against C-Ares and libssh2. 130 131 132PycURL 7.19.5.3 - 2015-11-03 133---------------------------- 134 135PycURL 7.19.5.2 release did not include some of the test suite files in 136its manifest, leading to inability to run the test suite from the sdist 137tarball. This is now fixed thanks to Kamil Dudka. 138 139 140PycURL 7.19.5.2 - 2015-11-02 141---------------------------- 142 143Breaking change: DEBUGFUNCTION now takes bytes rather than (Unicode) string 144as its argument on Python 3. 145 146Breaking change: CURLMOPT_* option constants moved from Easy to Multi 147class. They remain available in pycurl module. 148 149SSL library detection improved again, --libcurl-dll option to setup.py added. 150 151Options that required tuples now also accept lists, and vice versa. 152 153This release fixes several memory leaks and one use after free issue. 154 155Support for several new libcurl options and constants has been added. 156 157 158PycURL 7.19.5.1 - 2015-01-06 159---------------------------- 160 161This release primarily fixes build breakage against libcurl 7.19.4 through 1627.21.1, such as versions shipped with CentOS. 163 164 165PycURL 7.19.5 - 2014-07-12 166-------------------------- 167 168PycURL C code has been significantly reorganized. Curl, CurlMulti and 169CurlShare classes are now properly exported, instead of factory functions for 170the respective objects. PycURL API has not changed. 171 172Documentation has been transitioned to Sphinx and reorganized as well. 173Both docstrings and standalone documentation are now more informative. 174 175Documentation is no longer included in released distributions. It can be 176generated from source by running `make docs`. 177 178Tests are no longer included in released distributions. Instead the 179documentation and quickstart examples should be consulted for sample code. 180 181Official Windows builds now are linked against zlib. 182 183 184PycURL 7.19.3.1 - 2014-02-05 185---------------------------- 186 187This release restores PycURL's ability to automatically detect SSL library 188in use in most circumstances, thanks to Andjelko Horvat. 189 190 191PycURL 7.19.3 - 2014-01-09 192-------------------------- 193 194This release brings official Python 3 support to PycURL. 195Several GNU/Linux distributions provided Python 3 packages of PycURL 196previously; these packages were based on patches that were incomplete and 197in some places incorrect. Behavior of PycURL 7.19.3 and later may therefore 198differ from behavior of unofficial Python 3 packages of previous PycURL 199versions. 200 201To summarize the behavior under Python 3, PycURL will accept ``bytes`` where 202it accepted strings under Python 2, and will also accept Unicode strings 203containing ASCII codepoints only for convenience. Please refer to 204`Unicode`_ and `file`_ documentation for further details. 205 206In the interests of compatibility, PycURL will also accept Unicode data on 207Python 2 given the same constraints as under Python 3. 208 209While Unicode and file handling rules are expected to be sensible for 210all use cases, and retain backwards compatibility with previous PycURL 211versions, please treat behavior of this versions under Python 3 as experimental 212and subject to change. 213 214Another potentially disruptive change in PycURL is the requirement for 215compile time and runtime SSL backends to match. Please see the readme for 216how to indicate the SSL backend to setup.py. 217 218.. _Unicode: doc/unicode.html 219.. _file: doc/files.html 220