Schnelle und sichere C++ Webservices-Bibliothek

Ich suche nach einer vorhandenen Bibliothek, um C++-Webdienste zu entwickeln, in denen:

  1. Daten werden nicht von einem Prozess zum anderen kopiert (dies schließt einige FastCGI-Optionen aus). Ich bin dagegen, weil das Kopieren von Daten zwischen Prozessen ein vermeidbarer Leistungseinbruch ist, den ich lieber vermeiden würde.
  2. Der Webserver selbst wurde vielen Sicherheitsprüfungen unterzogen und ist dafür bekannt, dass er sicher ist.
  3. Der Webserver verarbeitet Tausende gleichzeitiger Verbindungen gleichzeitig.
  4. Der Webserver konkurriert mit nginx und netty.

Ich suche nach einer Empfehlung für ein vorhandenes Framework, eine Bibliothek oder eine Anwendung, in die ich meine Webdienste einbinden kann.

Diese Lighttpd-Seite[1] hat einen interessanten Ansatz für FastCGI, bei dem Antworten aus dem Speicher bereitgestellt werden können, der vom Webserver und dem FastCGI-Prozess gemeinsam genutzt wird.

Ich frage mich, ob ich meine Dienste nur als Nginx-Module für Sicherheit und Geschwindigkeit entwickeln sollte.

[1] http://blog.lighttpd.net/articles/2006/11/29/faster-fastcgi/

Diese Frage ist besser für Programmers.SE geeignet
Diese Frage scheint nicht zum Thema zu gehören, da es sich um eine Programmierimplementierung und nicht um ein vorhandenes Softwareprodukt handelt. Siehe Dan Doggens Vorschlag.
Vielen Dank. Ich suche nach einer bestehenden Implementierung. Entweder eine Bibliothek oder ein Framework oder ein Programm, in das ich meine Dienste einbinden kann. Macht das dies hier relevanter? Vielen Dank!
Woran denken die Schließer? Diese Frage ist eindeutig themenbezogen, eigentlich eine großartige Frage.
Ich habe eine Notiz hinzugefügt, dass ich nach einem bestehenden Framework, einer Bibliothek oder einer Anwendung gesucht habe, in die ich meine Webdienste einbinden kann.

Antworten (2)

Ich vermute, Sie möchten eine C++ 11 - kompatible HTTP-Serverbibliothek (für Linux, nehme ich an), nicht nur für einen früheren C++-Standard.

(Wenn Sie keine Bibliothek möchten, aber etwas mit einem anderen HTTP-Serverprozess kommunizieren möchten , verstehe ich nicht, wie Sie FASTCGI - oder ein anderes Protokoll wie SCGI - vermeiden könnten; ich glaube nicht, dass Shared Memory sinnvoll wäre IPC zwischen Ihrem Prozess und dem Webserver, da die Synchronisierung in diesem Fall ein großes Problem darstellt; Dateisysteme sind jedoch schnell!)tmpfs

Sie könnten libonion ausprobieren , aber seine C++-Unterstützung ist im März 2015 schlecht (bis zu dem Punkt, dass er in der Praxis kaum verwendbar ist, siehe Ausgabe Nr. 105 ) .

Sie könnten es versuchen cpp-netlib , aber die C++ 11- Webserverseite ist meiner Meinung nach nicht ausreichend dokumentiert, siehe meine Frage zu StackOverflow

Sie könnten POCO versuchen ; Ich kenne es nicht genug, wenn es Ihren Bedürfnissen entspricht.

Es gibt auch Wt

Eine Möglichkeit ist Cutelyst also:

  1. Mit cutelyst-wsgi können Sie einen Front-End-Server vermeiden
  2. Bis jetzt wurde kein Sicherheitsproblem gefunden, der Code wurde mit großer Vorsicht geschrieben, um keine Pufferüberlaufprobleme zu haben
  3. Sie können seine Leistung mit TechEmpower Benchmarks überprüfen .
  4. Auf TechEmpower können Sie auch sehen, wie gut es mit FastCGI und NGINX abschneidet, obwohl lokale Tests mit NGINX mit Proxy-Pass eine bessere Leistung hatten
Danke Daniel. Beeindruckende TechEmpower-Ergebnisse!