cutelyst

A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.

Github stars Tracking Chart

Cutelyst - The Qt Web Framework

Build Status
Windows Build status
Codacy Badge
Code Quality: Cpp
Total Alerts

A Web Framework built on top of Qt, using the simple and elegant approach of Catalyst (Perl) framework.

Qt's meta object system is what powers the core of Cutelyst, it allows for introspecting controller's methods signatures and generate matching actions that can be invoked later.

BENCHMARKS

Don't trust us on being fast, check out the most comprehensive web framework benchmarks by TechEmpower
http://www.techempower.com/benchmarks/

FEATURES:

  • Cross-platform
  • Stable API/ABI - v1 on v1.x.x branch and v2 on tagged from master
  • Pluggable Engines
    • Cutelyst-WSGI - A cross-platform and fast WSGI engine
      • HTTP/1.1 - Pipelining and Keep-Alive
      • HTTP/2 - Upgrade to H2, ALPN negotiation on HTTPS and direct H2C
      • FastCGI - Pipelining and Keep-Alive
    • uWSGI - Multiple protocols support (HTTP 1.0, FastCGI, uWSGI)
  • WebSockets
  • REST with ActionREST
  • Plugin based views
  • Dispatcher
    • Chained
    • Path
  • Plugins
    • Session
    • Authentication (with PBKDF2)
    • Authorization with RoleACL
    • StatusMessage
    • Validator (to validate user input)
    • CSRF protection
    • Memcached
    • UserAgent
  • Upload parser
  • JSON body as QJsonDocument when uploaded data is in JSON format
  • C++11
  • Chunked reponses (via QIODevice write API)
  • Request profiling/stats
  • Asynchronous processing (just don't use local QEventLoops or it will eventually crash)
  • Unit tested
  • QtCreator integration

DOCUMENTATION

Get started with our Tutorial or check the API.

COMMUNITY

The Cutelyst project IRC channel is #cutelyst on freenode.

Or you can use the Mailing List

REQUIREMENTS

  • CMake - for the build system (>= 3.1)
  • Qt - the core library of this framework (>= 5.6)

OPTIONAL

  • uWSGI - to receive and parse protocols requests (>= 1.9 recommended)

LICENSE

The library is under the LGPLv2+ and public header files, documentation and
examples are under MIT license.

Main metrics

Overview
Name With Ownercutelyst/cutelyst
Primary LanguageC++
Program languageCMake (Language Count: 6)
Platform
License:BSD 3-Clause "New" or "Revised" License
所有者活动
Created At2015-06-04 04:05:28
Pushed At2025-04-21 23:23:46
Last Commit At2025-04-21 20:22:45
Release Count89
Last Release Namev5.0.0-beta1 (Posted on 2025-01-24 01:32:47)
First Release Namer0.1.0 (Posted on )
用户参与
Stargazers Count0.9k
Watchers Count54
Fork Count119
Commits Count2.8k
Has Issues Enabled
Issues Count227
Issue Open Count15
Pull Requests Count223
Pull Requests Open Count0
Pull Requests Close Count25
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private