Drogon für C++: Vollständiges Tutorial mit Beispielen
Willkommen in der Welt der leistungsstarken Webentwicklung mit C++ und dem Drogon-Framework. Wenn Sie die asynchronen Fähigkeiten von Node.js oder den Komfort von Flask und Django schätzen, aber gleichzeitig native Performance benötigen, ist Drogon die richtige Wahl. In diesem Artikel zeigen wir Ihnen Schritt für Schritt, wie Sie Drogon installieren, Ihre erste Anwendung schreiben, die wichtigsten Methoden nutzen und typische Fehler vermeiden.
1. Was ist Drogon und warum brauchen Sie es?
Drogon ist ein leistungsstarkes, plattformunabhängiges Web-Framework für C++. Im Gegensatz zu vielen anderen Lösungen basiert es auf einem asynchronen I/O-Modell mit einer eigenen Event-Loop. Dadurch können tausende gleichzeitige Verbindungen verarbeitet werden, ohne für jede einen separaten Thread zu erstellen – das reduziert Speicherverbrauch und Kontextwechsel drastisch.
Warum Drogon verwenden? Erstens: Geschwindigkeit. Dank kompiliertem C++ und nicht-blockierendem I/O bearbeitet Drogon Anfragen mit Mikrosekunden-Latenz – ideal für hochfrequente REST-APIs, Microservices und Echtzeitanwendungen. Zweitens: Umfangreiche Funktionen direkt aus der Box: ORM für Datenbanken, WebSocket-Unterstützung, JSON, SSL/TLS, Middleware, ein Template-System (ctemplate) und ein integrierter HTTP-Client.
Das Framework wird aktiv weiterentwickelt, bietet eine klare Dokumentation und eine freundliche Community. Wenn Sie ein Backend benötigen, das die Hardware bis ans Limit ausreizt, ohne auf Code-Ausdrucksstärke zu verzichten, ist Drogon Ihr zuverlässiges Werkzeug.
2. Installation
Drogon wird nicht über Paketmanager wie pip oder npm installiert. Sie müssen es aus dem Quellcode kompilieren. Der Prozess ist jedoch mit CMake und vcpkg weitgehend automatisiert.
Methode 1: Installation mit vcpkg (empfohlen)
# vcpkg klonen, falls noch nicht geschehen
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh # oder bootstrap-vcpkg.bat unter Windows
# Drogon installieren
./vcpkg install drogon
Methode 2: Manuelle Kompilierung aus dem Quellcode
# Abhängigkeiten installieren (Ubuntu/Debian)
sudo apt-get install git cmake build-essential libssl-dev libjsoncpp-dev libboost-all-dev libsqlite3-dev libmariadb-dev libpq-dev
# Repository klonen
git clone https://github.com/drogonframework/drogon.git
cd drogon
# Build-Ordner erstellen
mkdir build && cd build
# Konfigurieren und kompilieren
cmake ..
make -j$(nproc)
# Systemweit installieren
sudo make install
Nach der Installation können Sie Drogon in Ihren CMake-Projekten einbinden:
find_package(Drogon REQUIRED)
target_link_libraries(my_app PRIVATE Drogon::Drogon)
3. Schnellstart – Minimales funktionsfähiges Beispiel
Schreiben wir einen einfachen HTTP-Server, der auf jede GET-Anfrage mit "Hello, World!" antwortet.
// main.cpp
#include <drogon/drogon.h>
int main() {
// App-Instanz erstellen
drogon::app().registerHandler("/", [](const drogon::HttpRequestPtr& req,
std::function<void (const drogon::HttpResponsePtr&)> &&callback) {
// Antwort erstellen
auto resp = drogon::HttpResponse::newHttpResponse();
resp->setBody("Hello, World!");
callback(resp);
});
// Server auf Port 8080 starten
drogon::app().addListener("0.0.0.0", 8080).run();
return 0;
}
Kompilieren und ausführen:
g++ -std=c++17 -o hello main.cpp -ldrogon -ljsoncpp -lssl -lcrypto -lpthread
./hello
Öffnen Sie nun Ihren Browser und gehen Sie zu http://localhost:8080. Sie sehen das erwartete "Hello, World!".
4. Grundlegende Methoden
Auch in der Bibliothek
PhotosUI für Swift: Vollständige Anleitung mit Beispielen
Maschinelles Lernen mit C#: Bibliotheken ML.NET und Accord.NET