Об этом проекте
Fiber — веб-фреймворк для Go, вдохновлённый Express и построенный на Fasthttp, HTTP-движке для Go. Он направлен на упрощение разработки быстрых серверных приложений, сохраняя низкое использование памяти и высокую производительность.
Основные возможности, описанные в README:
- Маршрутизация: поддерживает шаблонные, именованные, необязательные и многоаргументные маршруты, а также именование и поиск маршрутов.
- Обслуживание статических файлов: обслуживание директорий или отдельных файлов, включая резервный файл index для несопоставленных маршрутов.
- Middleware и Next: глобальные и маршрутизированные middleware с цепочкой через c.Next().
- Встроенные middleware: логгер, CORS, восстановление, ограничитель скорости и другие, перечисленные в таблице внутренних middleware.
- Движки шаблонов: по умолчанию использует html/template и поддерживает внешние движки, такие как Pug, Handlebars, Mustache и Amber через пакет gofiber/template.
- Группировка маршрутов: группировка маршрутов в цепочки с общими префиксами и middleware.
- Ответы в формате JSON: помощники для возврата структур и карт в формате JSON.
- Поддержка WebSocket и Socket.io через contrib пакеты.
- Server-Sent Events: пример демонстрирует потоковые события с частичной передачей.
- Настройка доверенных прокси: настраиваемые заголовки прокси и доверенные диапазоны прокси.
- Совместимость с net/http: роутер принимает стандартные обработчики net/http напрямую, а адаптер middleware может соединять целые приложения или цепочки middleware в обе стороны.
- Обработчики в стиле Express: адаптирует обработчики с двумя аргументами request/response и middleware с тремя аргументами и вызовами next.
Установка требует Go 1.26 или выше. Пакет устанавливается через go get github.com/gofiber/fiber/v3. Минимальный пример инициализирует приложение, определяет маршрут GET, возвращающий строку, и слушает порт 3000.
Примечание в README указывает, что значения, возвращаемые fiber.Ctx, по умолчанию не являются неизменными и повторно используются для запросов, поэтому значения контекста должны использоваться только в обработчике и не сохраняться. Также упоминается, что из-за использования unsafe, библиотека может не всегда совместима с последней версией Go. Бенчмарки от TechEmpower, ссылки на диаграммы и вики.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.