Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-60105

Lightweight HTTP server

    XMLWordPrintable

    Details

    • Type: Epic
    • Status: In Progress
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.10
    • Fix Version/s: 6.0 (Next Major Release)
    • Component/s: Network
    • Labels:
      None
    • Epic Name:
      Light HTTP Server

      Description

      Provide a framework for an HTTP server with the following main applications:

      • make it easy for developers to expose some Qt application functionality through REST APIs
      • support integration of WebAssembly and UI remoting technologies (such as WebGL) into Qt
      • make devices built with Qt configurable or remote-controlled via HTTP

      Initial Version

      The main feature of the initial version of the framework is to provide routing as per HTTP 1.1, and access to response and request objects through C++ and QML APIs, while maintaining a small footprint. The framework is extensible through C++ subclassing of the respective abstract and interface classes.

      Basic functionality

      • HTTP 1.1 standard compliant handling of requests and responses
      • access to the HTTP request and response properties (verb/method, headers, body) through a convenient API
      • routing with type checking and implicit conversion (QTBUG-60106)
      • error handling with custom error response
      • support for websockets

      Scalability and concurrency

      • single-threaded, event driven by default
      • reentrant framework
      • multithreaded response handling by subclassing QTcpServer is possible

      Security

      • support for encryption via HTTPS (should be default)
      • basic authentication possible through access to HTTP header (QTBUG-60109)

      Support for operators

      • runtime-configurable logging
      • rate limiting (in addition to QTcpServer::setMaximumPendingConnections; might need more functionality in the network stack to prevent flooding/DDoS/brute-forcing)

      Future releases

      Features we are considering

      Technologies to be researched

      • how to integrate with a reverse proxy (nginx, wsgi)
      • working with API gateway technologies (swagger etc)
      • QUIC
      • JSON-RPC

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              • Assignee:
                jefernan Jesus Fernandez
                Reporter:
                fdv Fredrik de Vibe
                PM Owner:
                Santtu Ahonen
                RnD Owner:
                Volker Hilsheimer
              • Votes:
                29 Vote for this issue
                Watchers:
                61 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes