有(事实上)用于编程语言的标准web服务器接口,例如用于Python的WSGI,用于Ruby的Rack。Haskell有没有类似的东西?我发现了两个试验,Hack和HSGI,但不确定其中哪个(或另一个)在Haskell领域更受欢迎。
等待Haskell大师的建议!
发布于 2011-10-09 08:30:45
Haskell的事实标准是WAI (Web Application Interface)。它得到了流行的Haskell web框架Yesod的支持,在Hackage上有几个围绕这个接口构建的包。
发布于 2011-10-11 02:10:33
人们普遍认为,目前有三个主要的Haskell web框架: Happstack,Yesod和Snap (按时间顺序)。每个框架都有自己的web服务器。在其他web服务器上也有尝试,但似乎都没有成功。Happstack计划在不久的将来更换web服务器(可能是Yesod使用的Warp )。因此,我们在Haskell中只剩下两个现代主流web服务器: Snap和Warp (也是按时间顺序)。
Warp符合wai包中定义的接口,这似乎是定义标准web服务器接口的一种尝试。然而,WAI只被当前主流的Haskell web服务器中的一个使用,所以我看不出有什么能令人信服地证明它是一个真正的标准。作为一个标准,你所获得的边际收益只有在标准化玩家实际上是有区别的时候才有用,而在Snap和Warp的情况下,我不相信他们是有区别的。我能想到的区分Warp和Snap的唯一一件事是,在一个简单的pong基准测试中,Warp的表现比Snap更好。但我从来没有听过有人抱怨Snap太慢,所以Warp的速度似乎并没有真正区分它。
此外,WAI在Snap或Warp出现之前就出现了。当Snap问世时,我们对界面应该是什么样子有不同的看法,这使得WAI不适合我们。从那时起,WAI也发生了变化,这进一步支持了它为时过早的观点。毕竟,如果一个标准一直在变化,它有什么好处呢?
如果新的Haskell web服务器具有各种不同的功能和创新,那么我肯定会出现共性,从中可以开发出真正的标准。但在此之前,我认为选择web服务器是相当微不足道的。Warp和Snap都是很好的web服务器,不应该在你选择使用的框架中扮演重要的角色。
https://stackoverflow.com/questions/7700619
复制相似问题