标准Web服务器接口相当于Haskell的WSGI/Rack

min*_*hee 14 webserver haskell interface web

有(事实上的)标准Web服务器接口用于编程语言,例如WSGI for Python,Rack for Ruby.Haskell有同等的东西吗?我发现了两个试验,Hack和HSGI,但我不确定这些(或另一个)在Haskell土地中更受欢迎.

等待Haskell大师们的建议!

ham*_*mar 11

Haskell的事实上的标准是WAI(Web应用程序接口).它受到流行的Haskell Web框架Yesod的支持,并且Hackage上有几个围绕此接口构建的软件包.

  • Snap不支持WAI.但是哈普斯塔克正在转向它. (6认同)
  • @stepcut:你碰巧知道为什么Snap不支持WAI(还)吗? (5认同)

mig*_*yte 5

人们普遍认为,目前有三种主要的Haskell Web框架:Happstack,Yesod和Snap(按时间顺序排列).每个框架都有自己的Web服务器.其他网络服务器也曾有过尝试,但似乎都没有尝试过.Happstack计划很快改变Web服务器(可能是Yesp使用的Warp).因此,我们在Haskell中留下了两个现代主流Web服务器:Snap和Warp(也按时间顺序).

Warp符合wai包中定义的接口,这似乎是尝试定义标准Web服务器接口.但是,WAI仅被当前主流的Haskell Web服务器之一使用,所以我根本看不出如何能够提出一个令人信服的论据,即它是一个真正的标准.你从标准中获得的边际收益只有在标准化的参与者实际分化时才有用,而在Snap和Warp的情况下,我不相信它们是.我唯一可以想到的区别是Warp和Snap是Warp在Snap上发布的性能比简单的乒乓基准更好.但我从来没有听到有人抱怨Snap太慢,所以Warp的速度似乎并没有真正区分它.

此外,WAI在Snap或Warp存在之前出现了.当Snap问世时,我们对界面的外观有不同的看法,这使得WAI不适合我们.从那时起,WAI也在不断发展,这进一步支持了它为时过早的论点.毕竟,如果标准不断变化,标准有什么用?

如果新的Haskell Web服务器爆炸式增长,具有各种不同的功能和创新,那么我肯定会出现可以开发真正标准的共性.但在那之前,我认为Web服务器的选择相当微不足道.Warp和Snap都是很好的Web服务器,不应该在您使用哪个框架的更大选择中发挥重要作用.

  • 我并不是说WAI不是一段有用的代码.我正在回答关于Haskell的"(事实上的)标准Web服务器接口"的原始问题.如果那不是重点,那么他们的名字可能会产生误导. (2认同)