Подтвердить что ты не робот

Стандартный интерфейс веб-сервера, эквивалентный WSGI/Rack для Haskell

Существуют (де-факто) стандартные интерфейсы веб-сервера для языков программирования, например. WSGI для Python, стойка для Ruby. Есть ли эквивалентная вещь для Haskell? Я нашел два испытания: Hack и HSGI, но не уверен, какой из них (или другой) более популярен на земле Haskell.

Ожидание советов гуру Хаскелла!

4b9b3361

Ответ 1

Фактическим стандартом для Haskell является WAI (веб-интерфейс приложения). Он поддерживается популярной веб-картой Haskell Yesod, и в Hackage есть несколько пакетов, построенных вокруг этого интерфейса.

Ответ 2

Широко признано, что в настоящее время существуют три основных веб-фреймворка Haskell: Happstack, Yesod и Snap (в хронологическом порядке). Каждая инфраструктура имеет свой собственный веб-сервер. Были попытки на других веб-серверах, но ни одна из них, похоже, не сработала. Happstack планирует в ближайшее время сменить веб-сервер (возможно, на Warp, который использует Йесод). Таким образом, это оставляет нам два современных основных веб-сервера в Haskell: Snap и Warp (также хронологический порядок).

Warp соответствует интерфейсу, определенному в пакете wai, что, похоже, является попыткой определить стандартный интерфейс веб-сервера. Однако WAI используется только одним из современных веб-серверов Haskell, поэтому я просто не вижу, как можно сделать убедительный аргумент, что он является подлинным стандартом. Предельное преимущество, которое вы получаете от стандартного, полезно только тогда, когда стандартизованные игроки фактически дифференцированы, а в случае Snap и Warp я не уверен, что они есть. Единственное, что я могу думать о том, что отличает Warp и Snap, это то, что Warp опубликовал лучшую производительность, чем Snap для простого теста понга. Но я никогда не слышал, чтобы кто-то жаловался, что Snap слишком медленный, поэтому скорость Warp, похоже, действительно не отличает его.

Кроме того, WAI вышел раньше, чем существовала Snap или Warp. Когда Snap вышел, у нас были разные мнения о том, как должен выглядеть интерфейс, который сделал WAI неуместным для нас. WAI также развивается с тех пор, что также подтверждает довод о том, что это было преждевременно. В конце концов, какой хороший стандарт, если он продолжает меняться?

Если произойдет взрыв новых веб-серверов Haskell со всеми различными функциями и нововведениями, я уверен, что возникнут общие черты, из которых можно было бы разработать настоящий стандарт. Но до тех пор я думаю, что выбор веб-сервера довольно незначителен. Оба Warp и Snap являются хорошими веб-серверами и не должны играть существенной роли в гораздо большем выборе той структуры, которую вы используете.