Исходная задача при разработке любого программного обеспечения — выбор набора технологий, которые постоянно развиваются и обновляются. На сегодня из всех языков программирования наиболее выделяется язык Go. Лет десять назад это был нишевый язык. В 2023 г., по данным статистики github.com, он занимал третье место по количеству звёзд и открытым запросам на слитие и шестое по количеству пушей и открытых обсуждений [1]. Go — это многопрофильный язык, представляющий собой встроенный набор инструментов, созданный для удобной разработки современных приложений с параллельной обработкой (облачных, системных и веб-приложений) [2].
Для удобства и скорости разработки программисты используют различные пакеты, среди которых выделяется отдельный тип — фреймворки. Это программная платформа, определяющая структуру программной системы, облегчающей разработку и объединение разных компонентов большого программного проекта. Язык Go построен на философии Unix, согласно которой разработчикам следует использовать минималистичные пакеты вместо их мультифункциональных аналогов [3]. Пакеты, относящиеся к фреймворкам, выполняющие ограниченный набор функционала (преимущественно роутинг и темплейтинг), и называются микрофреймворками. Наша цель — тестирование производительности и эффективности популярных и актуальных фреймворков на языке Go.
Для сравнения были выбраны фреймворки и пакеты, выполняющие схожие функции, имеющие более тысячи звёзд на гитхабе и обновлённые не более двух лет назад. Список сравниваемых пакетов: atreugo, beego, chi, echo, fasthttp, fiber, gearbox, gin, goframe, gorilla, goyave, httprouter, negroni, webgo и default (реализация роутера средствами встроенного пакета go). Для замеров был использован пакет go-web-framework-benchmark.