Frog Proger 17 марта 2024

🐍🚀 Niquests: новый стандарт HTTP-клиентов в Python, превосходящий Requests

Библиотека Requests долгое время была де-факто стандартом для HTTP-запросов в Python, но у нее есть ряд серьезных недостатков. Инновационная библиотека Niquests не только исправляет ошибки Requests, но и предлагает множество улучшений.
🐍🚀 Niquests: новый стандарт HTTP-клиентов в Python, превосходящий Requests
Ключевые идеи статьи A Retrospective on Requests


У популярной библиотеки Requests немало недостатков:

  • Переусложненный API с избыточными параметрами, плохо взаимодействующими друг с другом (например, проблемы с сочетанием json, files и headers).
  • Внутренняя архитектура кода плохо структурирована – это сильно затрудняет поддержку.
  • Обработка перенаправлений и повторных попыток (retry) реализована неудачно, с потерей информации об исключениях.
  • Неудобная работа cookies из-за имитации словаря.
  • Проблемы с поддержкой таймаутов из-за особенностей разрешения DNS.
  • Ограниченные возможности настройки TLS и прокси-соединений.
  • Механизм аутентификации не взаимодействует с логикой повторов запросов.
  • Недостаточное покрытие тестами приводит к проблемам при нестандартном использовании.
  • Сложность добавления новых функций из-за обратной несовместимости.
  • Документация по использованию внутренних модулей библиотеки оставляет желать лучшего.
🐍 Библиотека питониста
Больше полезных материалов вы найдете на нашем телеграм-канале«Библиотека питониста»
🐍🎓 Библиотека собеса по Python
Подтянуть свои знания по Python вы можете на нашем телеграм-канале«Библиотека собеса по Python»
🐍🧩 Библиотека задач по Python
Интересные задачи по Python для практики можно найти на нашем телеграм-канале«Библиотека задач по Python»

Но нашелся герой, написавший новую библиотеку, свободную от этих и многих других недочетов – Niquest. Вот некоторые из преимуществ:

  • Поддержка HTTP/2 по умолчанию, доступен HTTP/3. HTTP/2 и HTTP/3 обеспечивают более быстрое и эффективное взаимодействие с серверами. В отличие от других библиотек, которым требуется отдельная настройка для использования HTTP/2, Niquests включает его по умолчанию.
  • Мультиплексированные соединения устраняют необходимость в асинхронном программировании. Niquests позволяет выполнять одновременные HTTP-запросы без необходимости переписывать код в асинхронном стиле (async/await). Это упрощает разработку и повышает производительность для синхронного кода.
  • Повышенная безопасность. Niquests использует безопасные протоколы TLS 1.2 и выше, а также применяет рекомендуемые наборы шифров для защиты от изощренных атак.
  • Проверка сертификатов OCSP. Клиент проверяет действительность сертификатов сервера с помощью OCSP (Online Certificate Status Protocol) – это обеспечивает дополнительный уровень безопасности.
  • Зависимости с проверкой целостности. Niquests использует библиотеки с проверкой целостности с помощью SLSA (Supply chain Levels for Software Artifacts) – это гарантирует подлинность и неизменность зависимостей.
  • Доверие системным корневым сертификатам. Клиент использует доверенные корневые сертификаты из хранилища вашей операционной системы, которое защищено и постоянно обновляется.

Дополнительные фичи:

  • Производительность. Клиент может быть в 3 раза быстрее, чем другие библиотеки, при работе в синхронном режиме, особенно при использовании HTTP/2.
  • Сертификаты в памяти. Позволяет загружать клиентские сертификаты mTLS и ключи без необходимости хранения их в файлах.
  • Объектно-ориентированные заголовки. Предоставляет удобный доступ к заголовкам ответов с помощью объектно-ориентированного синтаксиса.
  • Исправленные ошибки. Разработчики клиента устранили ряд известных ошибок, которые присутствовали в других Requests.
  • Аннотации типов. Niquests использует аннотации для улучшения автодополнения и проверки кода в IDE.
Использовать Niquests даже проще, чем Requests
Использовать Niquests даже проще, чем Requests
***

Статьи по теме

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ