G-WAN ist ein ordentlicher Webserver: Er basiert auf dem Konzept der "C-Skripte":
Ein C-Skript ist einfach C-Quellcode, der vom Webserver kompiliert und dann in den geschützten Speicher geladen wird. Es wird vom Webserver aufgerufen, wenn eine Anfrage an das Servlet gestellt wird. Da das Servlet von einem C-Compiler kompiliert wird, ist es "so schnell" wie die normale Kompilierung eines C-Programms. Der Vorteil von C-Skripten gegenüber z. B. CGI oder FastCGI ist jedoch, dass sich das kompilierte Programm im selben Speicherbereich wie der Webserver befindet. Dadurch verringert sich der Kommunikationsaufwand (entweder durch die Erstellung eines Prozesses für jede Anfrage im Falle von CGI oder eines Sockets für FastCGI).
Der Webserver verwendet die Select/Poll-Technik: nicht-blockierende E/A. Allerdings gibt es eine nette Sache dabei. Jedes Programm kann so geschrieben werden, als ob es blockierende E/A verwenden würde. Da der Webserver selbst jedes C-Skript kompiliert, kann er das Programm so umwandeln, dass es nicht-blockierende E/A verwendet. Dadurch kann er sich selbst mit Bibliotheken von Drittanbietern verbinden (z. B. Datenbankzugriff) und trotzdem die nicht-blockierende E/A-Natur nutzen: kein Thread/Prozess-Kontextwechsel.
Die Werkzeuge, die für die Programmierung der C-Skripte zur Verfügung stehen, sind zum Beispiel Caching und sichere Puffer. Die nächste (zum Zeitpunkt der Erstellung dieses Beitrags noch nicht veröffentlichte) Version wird auch einen Key-Value-Speicher enthalten.
Leistung: Es gibt einige Benchmarks, die zeigen, dass er jeden anderen Webserver übertrifft, aber ich traue diesen nicht. Versuchen Sie, ein kleines CPU-intensives Programm in C und z.B. in PHP zu schreiben. Lassen Sie das C-Skript auf dem G-WAN und das PHP-Skript auf dem Apache laufen, und führen Sie selbst einen Benchmark durch.
Es gibt noch mehr, aber das würde den Rahmen dieser Frage sprengen.
Ein Nachteil von G-WAN ist, dass es von nur einer Person entwickelt wird. Es gibt jedoch ein Forum, in dem Sie Fragen stellen können.
Die Benutzerfreundlichkeit ist durch Ihre C-Kenntnisse begrenzt. Die bereitgestellte API ist jedoch einfach. Sie hat immer noch einige Ungereimtheiten und (meiner Meinung nach) hässliche Teile, aber das ist kein Problem. Ein schwerwiegenderes Problem ist, dass nicht garantiert ist, dass jede Version abwärtskompatibel ist, und dass Sie möglicherweise neu schreiben müssen.
Wenn Sie auf Nummer sicher gehen wollen: Nutzen Sie die Plattformunabhängigkeit von C: Erlauben Sie Ihrem Code, zu (Fast)CGI-Programmen kompiliert zu werden und auch von G-WAN verwendet zu werden. Sollte G-WAN ausfallen, können Sie jederzeit auf das (Fast)CGI des Apache zurückgreifen (siehe http://www.fastcgi.com/ für API's).