Я хотел бы судить Haskell на небольшом проекте, который должен хорошо подходить для него. Я хотел бы использовать его в качестве бэкенда к маленькому ajax приложению.
Бэкенд Haskell должен смочь сделать аутентификацию (основной, форма, безотносительно...), отслеживать сеанс пользователя (не много данных там за исключением имени пользователя) и отправить запрос обработчикам на основе типа запроса и uri. Это должно также смочь сериализировать ответ и на xml и на json формат, в зависимости от параметра запроса.
Я предполагаю, что обработчики идеально подходят для Haskell, так как сервис является в основном не сохраняющим состояние, но я не знаю, где запустить для остальной части истории.
Поиск hackage не дал мне, много подсказывает.
Решение для чистого haskell сервера было бы предпочтено.
Недавно я написал веб-службу производственного качества для внутреннего использования. Я использовал следующие пакеты:
Также, для другого проекта я также использую:
Ни один из этих компонентов не является компонентом самого высокого уровня, доступным для Haskell, но все они вполне работоспособны и достаточно полны.Я избегал абстракций более высокого уровня, поскольку мне нужно было приспособить их к существующей более крупной системе, и эти пакеты работают так же, как аналогичные компоненты, которые я использовал в других проектах веб-сервисов.
Я запускал службу как обработчик на основе fastCGI для Apache2 с mod_fcgid. Это выглядит надежно и эффективно. Я полагаю, что сервер на основе Haskell, скомпилированный вместе с сервисом, мог бы быть быстрее, но это было довольно разумно с очень небольшой работой. Я получил> 1400 запросов в секунду на сервере Linux с четырьмя процессорами, 2,6 ГГц.
Существует несколько чистых серверов Haskell. У большинства из них есть собственные API-интерфейсы для кода вашей службы, хотя все они очень похожи. Взгляните на:
Это, наверное, слишком много для размышлений. Сообщите нам, как это происходит!
Между тем, если вам нужна дополнительная информация, вы можете посетить HaskellWiki .
Я не уверен, насколько низкоуровневый уровень вы пытаетесь достичь. Если вы хотите написать свой собственный сервер, вы можете начать с чего-то вроде этого: http://lstephen.wordpress.com/2008/02/14/a-simple-haskell-web-server/
В качестве альтернативы, если вы ищете готовый фреймворк, вы можете попробовать HApps: http://happs.org/
Существует также порт Ruby-On-Rails. Turbinado или что-то в этом роде.
Наконец, есть несколько учебников по началу работы с CGI. Я использовал вот этот: http://www.haskell.org/haskellwiki/Practical_web_programming_in_Haskell (Он также был предложен в ответе @mdm)
Удачи!
Практическое веб-программирование на Haskell . Есть несколько модулей, которые вам пригодятся: Text.XHtml и Network.CGI.