Высокопроизводительный HTTP-фреймворк для Go с API в стиле Martini, предназначенный для REST API, веб-приложений и микросервисов.
go-chi/chi
Лёгкий совместимый с net/http роутер для создания REST API на Go с middleware, группами маршрутов и монтированием подроутеров.
- Звёзды
- 22,981
- Форки
- 3,717
- Открытые issues
- 132
- Последний коммит
- 4 дня назад
Что это?
chi — роутер для HTTP-сервисов на Go. Он сопоставляет URL-шаблоны с именованными параметрами и подстановочными знаками с обработчиками. Роутер построен на пакетах стандартной библиотеки net/http и context, поэтому с ним можно использовать любые обработчики и middleware, написанные для net/http. Ядро роутера компактное и не имеет внешних зависимостей.
Роутер поддерживает комбинируемые middleware, middleware для отдельных маршрутов, группы маршрутов и монтирование отдельных подроутеров по префиксу пути. Благодаря этому крупный REST API удобно разбивать на небольшие пакеты с собственными стеками middleware. Значения, привязанные к запросу, отмена и таймауты передаются через контекст запроса.
Необязательный пакет middleware включает такие компоненты, как идентификаторы запросов, логирование, восстановление после паники, сжатие, ограничение частоты запросов, таймауты и определение IP-адреса клиента. В дополнительных пакетах есть поддержка CORS, JWT-аутентификации, ограничения частоты запросов и генерации документации по маршрутам через docgen.
Ключевые возможности
- 01Именованные URL-параметры, параметры с regexp и подстановочные знаки в шаблонах маршрутов
- 02Стеки middleware, middleware для отдельных маршрутов и группы маршрутов
- 03Монтирование подроутеров по префиксам пути
- 04Полная совместимость со стандартными обработчиками и middleware net/http
- 05Встроенный пакет middleware для логирования, восстановления после паники, сжатия, таймаутов и не только
Сценарии использования
- Создание крупных и удобных в сопровождении REST API на Go
- Разбиение монолитного HTTP-сервиса на модульные подроутеры
- Подключение стандартного стека middleware для логирования, аутентификации и таймаутов в сервисах на Go
Быстрый старт
- 1
Установите chi с помощью go get
go get -u github.com/go-chi/chi/v5
Темы
Частые вопросы
- Что такое chi?
- Лёгкий совместимый с net/http роутер для создания REST API на Go с middleware, группами маршрутов и монтированием подроутеров. chi — роутер для HTTP-сервисов на Go. Он сопоставляет URL-шаблоны с именованными параметрами и подстановочными знаками с обработчиками. Роутер построен на пакетах стандартной библиотеки net/http и context, поэтому с ним можно использовать любые обработчики и middleware, написанные для net/http. Ядро роутера компактное и не имеет внешних зависимостей.
- chi можно использовать бесплатно? Какая у него лицензия?
- chi распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- chi всё ещё поддерживается?
- Активно поддерживается. Последний коммит в chi — 18 окт. 2026 г..
- Для чего можно использовать chi?
- Создание крупных и удобных в сопровождении REST API на Go Разбиение монолитного HTTP-сервиса на модульные подроутеры Подключение стандартного стека middleware для логирования, аутентификации и таймаутов в сервисах на Go
- Как установить chi?
- Установите chi с помощью go get: go get -u github.com/go-chi/chi/v5
- Где скачать chi?
- Исходный код и инструкции по установке — на GitHub: https://github.com/go-chi/chi
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Высокопроизводительный минималистичный веб-фреймворк для Go на базе стандартного пакета net/http.
Веб-фреймворк для Go в духе Express на базе fasthttp — для создания REST API и веб-серверов.
Мнение-ориентированный Java-фреймворк для создания готовых к эксплуатации приложений и сервисов на Spring с минимальной настройкой.
Быстрый микрофреймворк на C++ в стиле Flask для создания HTTP- и WebSocket-сервисов: header-only и простой в использовании.
Набор инструментов для создания Web API на базе Django: сериализация, политики аутентификации, viewsets и интерактивный API.