Release of curl 7.75.0 with experimental Rust HTTP backend

Available a new version of the utility for receiving and sending data over the network – curl 7.75.0 , which provides the ability to flexibly form a request with parameters such as cookie, user_agent, referer and any other headers. cURL supports HTTP, HTTPS, HTTP / 2.0, HTTP / 3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP, and other network protocols. At the same time, an update was released for the parallel development library libcurl, which provides an API for using all curl functions in programs in such languages ​​as C, Perl, PHP, Python.

The release is notable for the emergence of the possibility of replacing backends for handling the HTTP protocol in curl and libcurl. The first alternative HTTP backend Hyper implemented in Rust is included as an option. The backend is built using library of the same name with implementation of HTTP / 1 and HTTP / 2 protocols, and positioned as more secure through the use of secure memory technologies.
This work was supported by the ISRG organization behind the Let’s Encrypt project, which recently launched an initiative to implement the mod_tls module for the Apache http server in Rust.

Other changes:

  • Added option “ –create-file-mode [mode ]”, allows you to set access rights for files stored on a remote server (for protocols that support such storage).
  • In the option “ –write-out ” used to configure the output of information about the progress of data transfer, added support for new variables : onerror to define an error message, url for url substitution, exitcode for error substitution, errormsg for error message substitution, stderr for sending to stderr, etc. For example: curl -w ‘% {onerror}% {url} got% {exitcode} n’ $ URL
  • The syntax for the CURLOPT_RESOLVE parameter has been extended to allow temporary entries.
  • Added support for “gophers: //”, a secure version of the Gopher protocol over TLS.
  • Added support for AWS HTTP v4 Signature .
/Media reports.