Стандартный интерфейс веб-сервера, эквивалентный WSGI / Rack for Haskell - PullRequest
14 голосов
/ 09 октября 2011

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

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

Ответы [ 2 ]

11 голосов
/ 09 октября 2011

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

5 голосов
/ 10 октября 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...