2008-11-25 8 views
19

Ich suche nach etwas Arbeit (zum Spaß) in einer kompilierten Sprache, um ein paar einfache Tests und Benchmarks gegen PHP zu machen.Welche C++ Bibliothek für CGI-Programmierung?

Grundsätzlich würde Ich mag, um zu sehen, was andere Leute für C++ CGI-Programmierung verwenden. (Einschließlich Backend-Datenbank, wie MySQL oder andere)

Antwort

11

Ich bin nicht genau sicher, was Sie suchen, aber es ist ein C++ Web-Framework namens wt (ausgesprochen „witzig“). Es wurde ziemlich aktuell gehalten und wenn Sie robusten C++ serverseitigen Code wollen, ist dies wahrscheinlich, was Sie suchen.

Sie können es und mehr am wt homepage lesen.

P.S. Möglicherweise haben Sie Probleme beim Installieren von WT, wenn Sie keine Erfahrung mit * nix- oder C++ - Bibliotheken haben. Es gibt Walkthroughs, aber da Frameworks wie diese sind die Straße weniger gereist, erwarten, ein paar Unebenheiten zu treffen.

+0

Das sieht fast genauso aus wie das, wonach ich gesucht habe, aber ich bin auch ein begeisterter JavaScript-Entwickler. Mein erster Eindruck (ohne Nachforschungen) ist, dass dies versucht, das JS für Sie zu tun. Wahr? –

+0

Nun, ich habe dieses Framework nicht selbst benutzt, außer die "Hello, World" -App auszuprobieren, aber sie behaupten, dass du es kannst. Es gibt Unterstützung für "benutzerdefiniertes JavaScript (z. B. für clientseitige Ereignisbehandlung), und es werden C++ - Signale von diesem benutzerdefinierten JavaScript ausgegeben." - http://www.webtoolkit.eu/wt#/features –

+0

Wirklich großer Rahmen für mich. Es sieht so aus, als hätte es eine steile Lernkurve oder nur eine schlechte Dokumentation (sie benutzen Doxygen). – unixman83

4

Wenn ich darüber nachdachte, auf dieser Ebene zu arbeiten, würde ich wahrscheinlich einfach ein direktes Apache oder IIS-Modul anstelle eines CGI schreiben.

Das sagte, wenn Sie tun wollen mit CGI gehen, würde ich vorschlagen, die ehrwürdige cgic von Thomas Boutell verwenden. Es ist eine "normale" C-Bibliothek, aber seit Mitte der 90er Jahre ist sie in ständiger Nutzung, daher ist sie gründlich getestet und solide wie ein Rock.

+1

Die Lizenz von Cgic ist schlecht Erfordert die Zuweisung oder den Kauf einer kommerziellen Lizenz – unixman83

+0

Es hat diese Anforderung, aber IMHO ist es nicht alles * das * schlecht - alles, was erforderlich ist, ist eine einfache Notiz auf Ihrer Website "Kredite" (oder Sie fragen nicht nach einem riesigen anstößigen Banner auf jeder Seite oder so, LOL! :-) –

+1

FastCGI ist eine sinnvolle Alternative zu einem Apache-Modul. Es unterstützt C/C++. – unixman83

2

Kurz gesagt, ich glaube nicht, es ist so eine Sache für generische Server-CGI-Programmierung (glücklich natürlich falsch erwiesen).

Stattdessen werden Sie wahrscheinlich die Server-APIs zielen müssen, wie Apache's. This sieht wie eine vernünftige Einführung in die Anfrageverarbeitung aus, was ein großer Teil dessen ist, was Sie tun.

Als Alternative kann Lighttpd noch entwicklerfreundlicher sein, und (vor allem wenn Sie Leistung suchen) schneller.

Ich stelle fest, es gibt eine cpp-netlib in der Entwicklung, aber es scheint nur HTTP-Client zu sein.

+0

Ja, CGI ist ziemlich generisch. Das ist der springende Punkt, um die Schnittstelle zwischen einem Webserver und einem untergeordneten Prozess zu standardisieren, der zur Bearbeitung einer Anfrage gestartet wird.Ich habe CGIs mit Turbo C geschrieben, die den HTTP-Server von Bob Denny verwenden, um auf SGI-Servern, auf denen NCSAs laufen, problemlos verteilt zu werden. –

+0

Und ja, ich merke, wie alt es mich klingen lässt, über Dennys Server für Windows NT und über die NCSA-httpd, die älter Apache ist. Geh von meinem Rasen runter! :-) –

+0

Ich habe mich ursprünglich für GNU Cgicc entschieden, da es GNUs ist und daher normalerweise solide. Es gibt sie zwar sicher, aber es ist auch interessant, die "direkt nach api" Route zu gehen. –

0

Ich habe sehr angenehm empfunden habe CppCMS zu verwenden, um ein Fast CGI App zu entwickeln in einem nginx Server zu implementieren -.., Obwohl es nie in Produktion ging = (Das CppCMS Projekt enthält auch einige Bibliotheken für SQL-Konnektivität