Comments 8
Префоркование
Преподносить много-поточность через go-routine как какую-то особую фичу фреймворка выглядит немного глупо. Стандартный http в это тоже может как и любая другая библиотека для построения HTTP сервисов.
Прикрутить пулл горутин - ну такое себе... Пулл это всегда преолокация (что есть относительно хорошо для производительности, но не гуд по ресурсам), но в то же время они дают и лимиты: что делать если пре-аллокированные кончились? Ставить прием запросов в ожидание? Начинать возвращать ошибки? Срочно аллокировать новые хендлеры?
В целом библиотечка выглядит не так и плохо - стоит посмотреть на досуге. Но что там с HTTP2/chunked - есть поддержка или навешивать снаружи?
Если у вас тормозит net/http - вы делаете что-то не то. Тормозить должна база, ответы других сервисов или БЛ (зависит от задачи), а не протокол передачи данных. Если он правда тормозит, вы что-то неправильно спроектировали (не взяли grpc или nginx там где надо было). А ещё оно иногда падучее (zero allocation не просто даётся).
Итого: актуально для школьников-бенчмаркеров, а для бизнеса не оч.
Я, конечно, извиняюсь, но мне всегда казалось, что если ты утверждаешь, что один фреймворк быстрее другого, то тебе стоило бы привести хоть какую-то сравнительную характеристику, выраженную в абсолютных величинах. Ну или результаты бэнчмарков, на худой конец.
Поворчу: подключение к bd без пула, ну такое.
К сожалению не упомянут gofiber Client.. отличная штука! :)
Про базовый fasthttp, выше уже написали.
Забыли так же про длинный список поддерживаемых `template engines`..
например Django
и pug
.
Fiber на первом месте. У Gin даже документации нормальной нет, коммиты и релизы реже.
HTTP-серверы на Fiber в Golang