Comments 31
Этого как-то мало.
Но это же как минимум фатальный недостаток!
Фича это открытый код который работает.
Добился цели. Работает в 10 раз быстрее, чем Nginx на запросах меньше 100 Кб. Принимаю поздравления.
Добавить поддержку PHP бека ? ) На нем еще пишут? Наверное только старые легаси проекты поддерживают.
Запуск скриптов - это смысл сервера приложений, а не веб-сервера. Да, они обычно идут совместно, но всё же это разные вещи.
а что происходит с запросами больше 100кб?
Автор четко сказал - для чего он написал сервер: получение технических навыков в языке. Цель переплюнуть nginx не ставилась. Плюсую
Спасибо, но было бы здорово, если бы в статье было написано, с какими проблемами столкнулись, как обошли...
В частности, понятно ли, почему работает несколько медленнее Nginx и Caddy? Что можно сделать, чтобы убыстрить?
Может в этот раз мой мини-проект кого-то заинтересует? И это увлечение вырастет в что-то большее?
Присоединяйтесь лучше ко мне - надерем задницу ZeroMQ!
PS: на самом деле всех приглашаю кто шарит: проекту нужны веб-страничка с доками (своя или от гитхаба), тесты, фиксы, идеи... ну и как результат: ответы на so, восторженные отзывы и статьи на ресурсах (редит, хабр, медиум и тд).
Поставил плюс на гитхабе за подход к написанию кода - просто и по делу, а не как бывает у иных пассионарных фанатов Rust или, тем более, Haskell.
В итоге я столкнулся с тем, что Rust не имеет аналогов Nginx, Lighttpd, Caddy, HAProxy, Apache, Tomcat, Jetty и т.д. Все эти веб-сервера написаны на C, Go, Java и т.д.
Есть River (замена Nginx, на ранней стадии разработки):
https://www.memorysafety.org/initiative/reverse-proxy/
Есть G3:
https://github.com/bytedance/g3
Имеются только веб-фреймворки: Actix, Axum, Rocket, Hyper и т.д.
Мне кажется не корректно Actix, Axum и тем более Hyper фреймворками называть. Это библиотеки. Последняя к тому же достаточно низкоуровневая, чтобы на ней строились другие (тот же Axum и Rocket используют Hyper).
О, теперь и на Раст. Быстрый, надёжный, простой прокси интересует. От конфигов Traefik тошнит, Nginx нужно перезапускать, Caddy хорош но не поддерживает лейблы из коробки.
Автор, вы смотрели на https://github.com/cloudflare/pingora ? Выглядит так, что в ней уже реализуются вещи, которых вам не хватало.
CBLT — безопасный, быстрый и минималистичный веб-сервер на языке программирования Rust