Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
标准web服务器接口,相当于Haskell的WSGI/Rack_Haskell_Interface_Webserver_Web - Fatal编程技术网

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

标准web服务器接口,相当于Haskell的WSGI/Rack,haskell,interface,webserver,web,Haskell,Interface,Webserver,Web,有(事实上)用于编程语言的标准web服务器接口,例如用于Python的WSGI、用于Ruby的Rack。哈斯克尔也有类似的情况吗?我发现了两个试验,Hack和HSGI,但不确定哪一个(或另一个)在Haskell地区更受欢迎 等待Haskell大师的建议 Haskell的事实标准是。它由流行的Haskell web框架Yesod支持,Hackage上有几个围绕此接口构建的包。人们普遍认为,目前有三个主要的Haskell web框架:Happstack、Yesod和Snap(按时间顺序排列)。每个框

有(事实上)用于编程语言的标准web服务器接口,例如用于Python的WSGI、用于Ruby的Rack。哈斯克尔也有类似的情况吗?我发现了两个试验,Hack和HSGI,但不确定哪一个(或另一个)在Haskell地区更受欢迎


等待Haskell大师的建议

Haskell的事实标准是。它由流行的Haskell web框架Yesod支持,Hackage上有几个围绕此接口构建的包。

人们普遍认为,目前有三个主要的Haskell web框架:Happstack、Yesod和Snap(按时间顺序排列)。每个框架都有自己的web服务器。也有人尝试使用其他web服务器,但似乎没有一个成功。Happstack计划在不久的某个时候更换web服务器(可能是为了Warp,Yesod使用)。这就给我们留下了Haskell中的两个现代主流web服务器:Snap和Warp(也是按时间顺序排列的)

Warp符合wai包中定义的接口,这似乎是试图定义标准web服务器接口。然而,WAI只被当前主流的Haskell web服务器之一使用,所以我不明白人们如何能够令人信服地证明它是一个真正的标准。作为一名标准球员,你所获得的边际收益只有在标准球员确实有所不同时才有用,而在“快攻”和“扭曲”的情况下,我不相信他们是这样的。我能想到的唯一区别是Warp和Snap的地方是,对于一个简单的pong基准测试,Warp的性能比Snap好。但我从未听过有人抱怨Snap太慢,所以Warp的速度似乎并不能真正区分它

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


如果新的Haskell web服务器具有各种不同的功能和创新,那么我相信会出现共同点,从而开发出真正的标准。但在此之前,我认为选择web服务器是相当微不足道的。Warp和Snap都是很好的web服务器,在选择使用哪种框架时不应该扮演重要角色。

Snap不支持WAI。但是Happstack正在向它移动。@stepcut:你知道Snap为什么不支持WAI吗?hvr:mightybyte的回答指出这忽略了WSGI/Rack/WAI的要点。1) 服务器今天流行并不意味着它明天就会流行。2) 还有其他类型的后端,包括cgi和桌面webkit。WAI也是框架间代码重用的来源——中间件/应用程序可以很容易地共享。我并不是说WAI不是一段有用的代码。我在回答关于Haskell的“事实上的”标准web服务器界面”的原始问题。如果这不是重点,那么可能他们的名字有误导性。@GregWeber我明白你的第二点(尽管代码重用是以限制自己使用WAI API公开的公分母为代价的),但我不明白第一点指的是什么。你是说Warp在未来某个时候可能会变得不那么流行,然后基于WAI的web应用可能会与当时流行的服务器共存,这些服务器提供WAI兼容层(可能会因为WAI阻抗自适应而受到一些惩罚)?