G-Wan ,一个由汇编写的非完全开放源码的webserver。
官方网站: http://gwan.ch/
GWan早起仅支持支持解析C语言代码,以C语言风格书写WEB页面,通过调用GWan提供的API可以实现各类操作。譬如JSON压缩解析、HTTP头控制等。
目前的GWan已经支持各类语言,其支持情况可以参照这里 “ GWan支持的语言 ” ,由其首页的性能曲线图,也可以看出它目前的支持情况。
从图中,可以看出,GWan对PHP语言支持的相对不好。这点从官方提供的UserManual中的一句话也可以看出。
C, C++, D and Objective-C perform in a very similar way, like Java and Scala do. This is why
they are not represented in the chart above. The slowest language seems to be PHP, but at
630,000 requests / second on a 6-Core CPU, G-WAN's PHP support might be useful.
虽然,GWan从各种性能指数上显示,优于Nginx 、 Apache 、 Lighttpd等,但,它的开发模式实在让人望而却步。官方提供的几个Demo可以看这里。譬如,PHP的例子:
<?php
echo "Hello World\n";
exit(200); // HTTP status (200:'OK')
?>
HTTP的状态码,需要人工输出。这只是一个简单的例子,若要在GWan下开发Web项目,需要熟悉其提供的各类
API才能用的顺手。
由官网的介绍可见,GWan提供KV存储,并且说明文档中描述,GWan提供的KV存储,仅含有7个函数,要比NoSQL数据库快。GWan的KV存储采用Wait-Free方式处理多请求,而传统DB使用Lock-free要相对慢。该KV的单字段Value可以存储4G内容。
通过今天短暂的阅读GWan官网,个人认为该WebServer不适合大众Web项目开发,可能在一些特殊需求的项目中,GWan很适合,但至少目前看,它的易用性并没有市面上流程的Webserver强大。当然,由于其采用汇编编写,提及、速度要比市面的Server好,但作为非资深用户,不建议深入它。
最后,GWan的核心汇编实现的代码并未公开源码,并且可看出官方也不打算开源,即便早就有人向他们索取,甚至是出钱买。但GWan提供的各类API,是满足用户实现各类功能的。