Документация#

poseidon-http-client — низкоуровневый HTTP-клиент для Go с собственными реализациями HTTP/1.1, HTTP/2 и HTTP/3 с нуля: свой фрейминг, HPACK, QPACK и QUIC-стек, без net/http и без сторонних протокольных библиотек. Все три версии протокола скрыты за одним API Do/DoStream: вы выбираете транспорт, код запросов не меняется. Здесь описаны установка, по одной странице на каждый протокол с проверенным примером, общий для всех транспортов набор возможностей (пулинг, service discovery, повторы, ограничение частоты запросов, хуки, метрики) и дисклеймер, который стоит прочитать, прежде чем использовать первый релиз где-либо, где важна безопасность.

  • Начало работы — установка, требования, первый запрос.
  • HTTP/1.1 — транспорт с одним соединением, настройка TLS-дайлера, ALPN-фолбэк.
  • HTTP/2 — клиенты с одним соединением, с пулом и с service discovery; стриминг и управление потоком.
  • HTTP/3 — клиенты поверх QUIC, динамический QPACK, управление перегрузкой NewReno/BBR.
  • Возможности — API запросов, пулинг, discovery через Resolver/Selector, повторы, ограничение частоты, хуки, метрики.
  • Дисклеймер — что здесь означает «первый релиз» и как сообщать об уязвимостях.