Однофайловая библиотека на C++11 для создания HTTP/HTTPS-серверов и клиентов с блокирующим вводом-выводом через сокеты.
valyala/fasthttp
Быстрая реализация HTTP-сервера и клиента для Go с высокой пропускной способностью и низкими накладными расходами на выделение памяти.
- Звёзды
- 23,489
- Форки
- 1,883
- Открытые issues
- 66
- Последний коммит
- позавчера
Что это?
fasthttp — это реализация HTTP для Go с API сервера и клиента. Она рассчитана на экстремально высокую нагрузку: повторно использует объекты запросов и ответов и избегает выделения памяти на горячих путях. В README приведены бенчмарки со сравнением с net/http: в описанных сценариях сервер работает примерно до 6 раз быстрее, а клиент — до 4 раз.
API намеренно отличается от net/http. Обработчики принимают один аргумент *RequestCtx, а ServeMux отсутствует, поэтому для маршрутизации нужны сторонние роутеры или фреймворки, например Fiber. Заголовки и тело ответа можно записывать в любом порядке до возврата из обработчика. Для переноса существующего кода потребуется адаптировать обработчики и не обращаться к контексту после их завершения.
В README проекта для большинства приложений рекомендуется net/http: с ним проще работать, он обрабатывает больше нестандартных случаев HTTP и поддерживает HTTP/2. fasthttp лучше всего подходит сервисам, обрабатывающим тысячи небольших и средних запросов в секунду и которым нужна стабильно низкая задержка.
Ключевые возможности
- 01API сервера и клиента с повторным использованием объектов запросов и ответов для сокращения числа выделений памяти.
- 02Обработчики принимают один RequestCtx; заголовки и тело можно записывать в любом порядке.
- 03Поддержка слушателей reuseport и схем развёртывания с распределением по ядрам для масштабирования на многоядерных системах.
- 04Включает вспомогательные средства для преобразования обработчиков net/http, раздачи файлов и обработки таймаутов.
- 05Согласно FAQ в README, требуется Go версии 1.26 или новее.
Сценарии использования
- Высоконагруженные API-шлюзы или прокси, обрабатывающие большое количество небольших запросов.
- Сервисы на Go, чувствительные к задержкам, где нагрузка на выделение памяти — подтверждённое измерениями узкое место.
- Пограничные сервисы, обслуживающие множество keep-alive-подключений на одном сервере.
Быстрый старт
- 1
Установите библиотеку с помощью Go
go get -u github.com/valyala/fasthttp
Что важно знать
- fasthttp не является полноценной заменой net/http, и его API отличается.
- В README сказано, что обычно лучше выбрать net/http, если только вам не нужна очень высокая пропускная способность.
Темы
Частые вопросы
- Что такое fasthttp?
- Быстрая реализация HTTP-сервера и клиента для Go с высокой пропускной способностью и низкими накладными расходами на выделение памяти. fasthttp — это реализация HTTP для Go с API сервера и клиента. Она рассчитана на экстремально высокую нагрузку: повторно использует объекты запросов и ответов и избегает выделения памяти на горячих путях. В README приведены бенчмарки со сравнением с net/http: в описанных сценариях сервер работает примерно до 6 раз быстрее, а клиент — до 4 раз.
- fasthttp можно использовать бесплатно? Какая у него лицензия?
- fasthttp распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- fasthttp всё ещё поддерживается?
- Активно поддерживается. Последний коммит в fasthttp — 21 окт. 2026 г..
- Для чего можно использовать fasthttp?
- Высоконагруженные API-шлюзы или прокси, обрабатывающие большое количество небольших запросов. Сервисы на Go, чувствительные к задержкам, где нагрузка на выделение памяти — подтверждённое измерениями узкое место. Пограничные сервисы, обслуживающие множество keep-alive-подключений на одном сервере.
- Как установить fasthttp?
- Установите библиотеку с помощью Go: go get -u github.com/valyala/fasthttp
- Где скачать fasthttp?
- Исходный код и инструкции по установке — на GitHub: https://github.com/valyala/fasthttp
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Простая и элегантная библиотека Python для HTTP-запросов HTTP/1.1 с поддержкой сессий, cookies, аутентификации и JSON.
Высокопроизводительный веб-сервер, обратный прокси, балансировщик нагрузки, API-шлюз и кэш контента, написанный на C.
Высокопроизводительный HTTP-фреймворк для Go с API в стиле Martini, предназначенный для REST API, веб-приложений и микросервисов.
Типобезопасный HTTP-клиент для Android и Java, который превращает методы интерфейса с аннотациями в сетевые вызовы.
Открытая экосистема для разработки API: отправка REST-, GraphQL-, WebSocket-, SSE-, Socket.IO- и MQTT-запросов через веб-приложение, десктопные приложения и CLI.