Skip to content

Releases: JCMais/node-libcurl

v5.0.2

16 Jan 16:02

Choose a tag to compare

Fixed

  • Fixed the types on the FileInfo object. With 5.0.0, the properties were changed to be all in lowercase, to follow the libcurl struct more closely.

v5.0.1

13 Nov 15:12

Choose a tag to compare

Fixed

  • Building from source on macOS would not work properly.

v5.0.0

13 Nov 14:02

Choose a tag to compare

Breaking Change

  • The prebuilt binary is now built with libcurl 8.17.0. Every breaking change introduced by libcurl 8 is also a breaking change for this version.
    Version: libcurl/8.17.0 OpenSSL/3.5.2 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.1.1 libssh2/1.10.0 nghttp2/1.66.0 ngtcp2/1.17.0 nghttp3/1.12.0 OpenLDAP/2.6.9
    Protocols: dict, file, ftp, ftps, gopher, gophers, http, https, imap, imaps, ldap, ldaps, mqtt, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp, ws, wss
    Features: AsynchDNS, IDN, IPv6, Largefile, NTLM, SSL, libz, brotli, TLS-SRP, HTTP2, UnixSockets, HTTPS-proxy, alt-svc
    
  • Minimum supported Electron version is now Electron v38.0.0 (moving forward prebuilt binaries will only be available for the latest 2 versions of Electron).
  • Mininum supported libcurl version is now libcurl 7.81.0.
  • Windows 32-bit support is now dropped.
  • Minimum supported versions:
    • Node.js >= v22.20.0 (which bundles OpenSSL 3.5.2).
    • Electron >= v38.0.0.
    • libcurl >= v7.81.0.
    • Ubuntu >= v22.04.
    • Alpine >= 3.21
    • C++ compilers supporting c++20
  • The FileInfo object properties are now all in lowercase, to follow the libcurl struct more closely.
  • Errors thrown by the addon are now instances of one of the following classes:
    • CurlEasyError
    • CurlMultiError
    • CurlSharedError
      These classes extends the CurlError class. Previously the addon used to throw only native Javascript errors, such as Error, TypeError, etc.
      The curly related errors also inherit from the CurlError class, and do not have a isCurlError property anymore.
      Any caught error thrown from user callbacks will be added as the cause property of the error.
  • Every Easy handle is now initialized with default CA certificates from Node.js's tls module, by using the result of the getCACertificates function. This is done using CURLOPT_CAINFO_BLOB. This is a breaking change if you were passing custom CA certificates before using CAINFO, as CURLOPT_CAINFO_BLOB takes priority over it. If that is the case, you can avoid the default behavior by calling setOpt("CAINFO_BLOB", null) on the Easy handle. The TLS certificate is loaded into memory only once for each JavaScript context.
  • HSTSREADFUNCTION callback now receives an object with the maxHostLengthBytes property, which is the maximum length of the host name that can be returned by the callback.
  • The minimum macOS version is now Sonoma (13)
  • Curl.globalCleanup is a no-op now. The addon will automatically call curl_global_cleanup when the process exits. This method will be removed in a future major version.
  • Curl.globalInit is a no-op now. The addon will automatically call curl_global_init when the process starts. This method will be removed in a future major version.

Fixed

  • CurlHttpVersion.V3 not being set to the proper value (was not set to 30)

Added

v5.0.0-4

09 Nov 21:36

Choose a tag to compare

v5.0.0-4 Pre-release
Pre-release
5.0.0-4

v5.0.0-3

29 Oct 00:46

Choose a tag to compare

v5.0.0-3 Pre-release
Pre-release
5.0.0-3

v5.0.0-2

06 Oct 10:25

Choose a tag to compare

v5.0.0-2 Pre-release
Pre-release
5.0.0-2

v5.0.0-1

30 Sep 13:17
v5.0.0-1
e533ba2

Choose a tag to compare

v5.0.0-1 Pre-release
Pre-release

v5.0.0-0

27 Sep 18:01
v5.0.0-0
06c72eb

Choose a tag to compare

v5.0.0-0 Pre-release
Pre-release

pre-release with migration to n-api

v4.1.0...v5.0.0-0

v4.1.0

26 Dec 17:19
6bb4f99

Choose a tag to compare

Fixed

  • curly - use default content-type when there are no headers #410 by @liamdiprose

Added

  • Added prebuilt binaries for Node.js 22, Electron 33, Electron 32, and Electron 31

Notes

Besides possible security patches, this will be the last minor release in the v4 series. For v5, I am currently planning to work on this:

  • Migrate to N-API. This will allow us to support newer Node.js versions more easily.
  • Drop support for Node.js < 22.
  • Drop support for building with libcurl < 8.0.
  • Drop x86 support.
  • Support ES modules.

v4.0.0

12 Feb 01:11
ba96d00

Choose a tag to compare

Breaking Change

  • Mininum supported Node.js version is now Node.js 16.14.
  • The prebuilt binaries are only available on:
    • Node.js 18, 20, and 21
    • Electron 27, 27, and 28
  • NW.js binaries were removed, and may be re-introduced in the future.