Быстрый
Маршрутизация на основе radix-дерева, малый расход памяти. Без рефлексии. Предсказуемая производительность API.
Gin — это веб-фреймворк, написанный на Golang. Он предоставляет API, похожий на Martini, но с производительностью до 40 раз выше, чем у Martini. Если вам нужны производительность и продуктивность, вам понравится Gin.
Быстрый
Маршрутизация на основе radix-дерева, малый расход памяти. Без рефлексии. Предсказуемая производительность API.
Поддержка middleware
Входящий HTTP-запрос может обрабатываться цепочкой middleware и финальным действием. Например: логирование, авторизация, GZIP и, наконец, сохранение сообщения в БД.
Устойчивость к сбоям
Gin может перехватить panic, возникшую во время HTTP-запроса, и восстановить работу. Таким образом, ваш сервер будет всегда доступен. Также можно отправить отчёт о panic, например, в Sentry!
Валидация JSON
Gin может разбирать и валидировать JSON запроса, проверяя, например, наличие обязательных значений.
Группировка маршрутов
Организуйте маршруты лучше. С авторизацией и без, разные версии API. Кроме того, группы могут быть вложены бесконечно без снижения производительности.
Управление ошибками
Gin предоставляет удобный способ сбора всех ошибок, возникших во время HTTP-запроса. В итоге middleware может записать их в лог-файл, в базу данных или отправить по сети.
Встроенный рендеринг
Gin предоставляет простой API для рендеринга JSON, XML и HTML.
Расширяемый
Создать новый middleware очень просто — просто посмотрите примеры кода.