Доступна новая версия утилиты для получения и отправки данных по сети – curl 7.75.0, предоставляющей возможность гибкого формирования запроса с заданием таких параметров, как cookie, user_agent, referer и любых других заголовков. cURL поддерживает HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP и другие сетевые протоколы. Одновременно вышло обновление параллельно развиваемой библиотеки libcurl, предоставляющей API для задействования всех функций curl в программах на таких языках, как Си, Perl, PHP, Python.
Выпуск примечателен появлением возможности замены бэкендов для обработки протокола HTTP в curl и libcurl. В качестве опции в состав включён первый альтернативный HTTP-бэкенд Hyper, реализованный на языке Rust. Бэкенд построен с использованием одноимённой библиотеки c реализацией протоколов HTTP/1 и HTTP/2, и позиционируется как более защищённый за счёт применения технологий безопасной работы с памятью.
Работа выполнена при поддержке организации ISRG, стоящей за проектом Let’s Encrypt, которая на днях выступила с инициативой реализации на языке Rust модуля mod_tls для http-сервера Apache.
Другие изменения:
- Добавлена опция “–create-file-mode [mode]”, позволяющая задать права доступа для файлов, сохраняемых на удалённом сервере (для протоколов, поддерживающих подобное сохранение).
- В опции “–write-out” применяемой для настройки вывода информации о ходе передачи данных, добавлена поддержка новых переменных: onerror для определения сообщения при ошибке, url для подстановки url, exitcode для подстановки кода ошибки, errormsg для подстановки сообщения об ошибке, stderr для отправки в stderr и т.п. Например: curl -w ‘%{onerror}%{url} got %{exitcode}n’ $URL
- Расширен синтаксис параметра CURLOPT_RESOLVE, в котором теперь допускается добавление временных записей.
- Добавлена поддержка “gophers://”, защищённого варианта протокола Gopher, работающего поверх TLS.
- Добавлена поддержка AWS HTTP v4 Signature.