Първият стабилен релиз на утилитата за сваляне на уеб съдържание GNU Wget2

След три години и половина разработки, е представена първата стабилна версия на проекта GNU Wget2, който развива напълно преработен вариант на програмата за автоматизирано рекурсивно сваляне на съдържание GNU Wget. GNU Wget2 е проектиран и пренаписан от нулата и се отличава с изнасянето на основната функционалност на уеб клиента в библиотеката libwget, която може да се използва самостоятелно в приложения. Утилитата се предоставя под лиценз GPLv3+, а библиотеката под LGPLv3+.

Вместо постепенно да се преработва съществуващата кодова база, беше решено всичко да се презапише от нулата и да се основе отделен клон Wget2 за реализиране на идеи за реструктуриране, увеличаване на функционалността и въвеждане на промени, нарушаващи съвместимостта. С изключение на прекратяването на поддръжката на протокола FTP и формата WARC, wget2 в повечето ситуации може да служи като прозрачна замяна на класическата утилита wget.

В същото време wget2 има някои документирани различия в поведението си, предлага около 30 допълнителни опции и прекратява поддръжката на няколко десетки опции. Включително е спряна обработката на такива опции, като „—ask-password“, „—header“, „—exclude-directories“, „—ftp*“, „—warc*“, „—limit-rate“, „—relative“ и „—unlink“.

Сред основните нововъведения могат да се отбележат:

  • Изнасяне на функционалността в библиотеката libwget.
  • Преминаване на многопоточна архитектура.
  • Възможност за паралелно установяване на множество връзки и сваляне в множество потоци. Включително е възможно паралелно сваляне на един файл, разбит на блокове, с опция „—chunk-size“.
  • Поддръжка на протокол HTTP/2.
  • Използване на HTTP-заглавието If-Modified-Since за сваляне само на променени данни.
  • Преминаване към използване на външни ограничители на пропускната способност, като trickle.
  • Поддръжка на заглавието Accept-Encoding, предаване на данни в компресиран вид и алгоритми за компресия brotli, zstd, lzip, gzip, deflate, lzma и bzip2.
  • Поддръжка на TLS 1.3, протокол OCSP (Online Certificate Status Protocol) за проверка на отзовани сертификати, механизъм HSTS (HTTP Strict Transport Security) за принудително пренасочване към HTTPS и HPKP (HTTP Public Key Pinning) за привързване на сертификати.
  • Възможност за използване на GnuTLS, WolfSSL и OpenSSL като бекенди за TLS.
  • Поддръжка на режим за бързо отваряне на TCP връзки (TCP FastOpen).
  • Вградена поддръжка на формата Metalink.
  • Поддръжка на интернационализирани домейни имена (IDNA2008).
  • Възможност за работа чрез няколко прокси едновременно -сървъри (единичният поток ще се зарежда през един прокси, а вторият през друг).
  • Вградена поддръжка на новинарски емисии в формати Atom и RSS (например, за сканиране и зареждане на връзки). Данни от RSS/Atom могат да бъдат заредени от локален файл или по мрежата.
  • Поддръжка за извличане на URL адреси от файлове Sitemap. Наличие на парсери за извличане на линкове от CSS и XML файлове.
  • Поддръжка на директивата ‘include’ в конфигурационни файлове и разпределяне на настройки по няколко файла (\etc\wget\conf.d\*.conf).
  • Вграден механизъм за кеширане на DNS заявки.
  • Възможност за рекодиране на съдържанието с промяна на кодирането на документа.
  • Отчитане на файла „robots.txt“ при рекурсивни зареждания.
  • Режим на надеждно записване с извикване на fsync() след запазване на данни.
  • Възможност за възобновяване на прекратени TLS сесии, както и кеширане и запазване в файл на параметрите на TLS сесията.
  • Режим ‘--input-file --’ за зареждане на URL адреси, получени чрез стандартен входен поток.
  • Проверка на обхвата на Cookie по каталог на публични суфикси на домейни (Public Suffix List) за изолиране на различни сайтове, разположени в един и същи втори ниво домейн (например, ‘a.github.io’ и ‘b.github.io’).
  • Поддръжка на стрийминг изтегляне в формат ICEcast / SHOUTcast.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster