Crow C++ Framework: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Crow – Micro-Webframework für C++

1. Was ist Crow und warum braucht man es?

Crow ist ein leichtgewichtiges, schnelles und modernes Micro-Webframework für die Programmiersprache C++, inspiriert vom beliebten Python-Framework Flask. Es wurde entwickelt, um REST-APIs, Webservices und einfache Webanwendungen mit minimalem Codeaufwand und ohne komplexe Konfiguration zu erstellen. Crow ist in C++17/20 geschrieben und nutzt die Bibliotheken asio (oder boost.asio) für die asynchrone Anfrageverarbeitung, was es zu einer der leistungsstärksten Lösungen in seiner Nische macht.

Warum Crow verwenden? Wenn Sie schnell einen HTTP-Server in C++ für die Verarbeitung von JSON-Anfragen, das Ausliefern von statischen Dateien oder die Erstellung eines Microservices benötigen, ist Crow die ideale Wahl. Im Gegensatz zu schwergewichtigen Frameworks wie drogon oder pistache zeichnet sich Crow durch seine minimale Größe, eine einfache API und den Verzicht auf Codegenerierung oder komplexe Makros aus. Es eignet sich hervorragend für eingebettete Systeme, IoT-Geräte, Spieleserver und alle Szenarien, in denen Geschwindigkeit und ein geringer Speicherverbrauch entscheidend sind.

Crow unterstützt Routing (inklusive dynamischer Parameter in URLs), Middleware, JSON-Verarbeitung (über eine integrierte Bibliothek oder nlohmann/json), WebSocket, CORS, Multipart/Form-Data und vieles mehr. Das Framework wird aktiv weiterentwickelt, verfügt über eine gute Dokumentation und eine stabile Community.

2. Installation

Crow ist (in den meisten Fällen) eine Header-Only-Bibliothek, daher reduziert sich die Installation auf das Klonen des Repositories und das Einbinden der Header-Dateien. Für das Kompilieren von Beispielen und Projekten wird jedoch die Verwendung von CMake empfohlen.

Methode 1: Klonen (für die Entwicklung empfohlen)

git clone https://github.com/CrowCpp/Crow.git
cd Crow
mkdir build
cd build
cmake ..
make
sudo make install

Methode 2: Verwendung von vcpkg

vcpkg install crow

Methode 3: Einbindung über CMake FetchContent

include(FetchContent)
FetchContent_Declare(
    crow
    GIT_REPOSITORY https://github.com/CrowCpp/Crow.git
    GIT_TAG v1.0.0
)
FetchContent_MakeAvailable(crow)

target_link_libraries(your_project PRIVATE Crow::Crow)

Wichtig: Crow benötigt einen Compiler mit C++17-Unterstützung (gcc 8+, clang 7+, MSVC 2019+). Außerdem wird die Bibliothek asio (oder boost.asio) benötigt. Wenn Sie vcpkg verwenden, werden die Abhängigkeiten automatisch mitgeladen.

3. Schnellstart – Minimales funktionsfähiges Beispiel

Erstellen Sie eine Datei main.cpp mit folgendem Inhalt:

#include "crow.h"

int main() {
    crow::SimpleApp app;

    // Route für die Stamm-URL definieren
    CROW_ROUTE(app, "/")([](){
        return "Hallo, Crow!";
    });

    // Server auf Port 8080 starten
    app.port(8080).multithreaded().run();
}

Kompilieren und starten Sie das Programm:

g++ -std=c++17 -pthread main.cpp -o crow_server
./crow_server

Öffnen Sie Ihren Browser und navigieren Sie zu http://localhost:8080. Sie sollten die Begrüßungsnachricht sehen.

4. Wichtige Methoden/Funktionen/Klassen

4.1. crow::SimpleApp

Signatur: class SimpleApp : public crow::App<Middleware...>

Funktion: Die Hauptklasse der Anwendung. Sie verwaltet Routen, Middleware und den Lebenszyklus des Servers. SimpleApp ist eine vorkonfigurierte

Empfehlungen