Skip to content
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
C++ CMake Other
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update FUNDING.yml Mar 29, 2020
Cutelyst Add a helper method to do safe redirects in order to prevent ORV May 15, 2020
EventLoopEPoll Mark some classes as final Mar 4, 2020
cmake/modules Use doxygen variables prefixed with DOXYGEN_ Mar 31, 2020
cmd Change install paths to standard conventions Dec 9, 2019
dox docs: A few cutelyst-wsgi2 docs fixes Nov 30, 2018
examples core: Add support for Async processing with Context::detachAsync() Jan 14, 2019
i18n Process CuteleeView ts files in the i18n CMakeLists.txt Apr 4, 2020
qtcreator/cutelyst Remove old CMake includes from project skells Feb 18, 2019
tests Validator plugin: add new ValidatorCharNotAllowed Oct 28, 2019
uwsgiEngine core: Use QElapsedTimer::nsecsElapsed() for greater precision Dec 26, 2018
wsgi wsgi: Fix binding when reuse-port is used with uid drop privileges May 31, 2020
.travis.yml diable Cutelee view on Travis May 24, 2020
AUTHORS Give proper credit to Perl Catalyst Framework Dec 1, 2013
CMakeLists.txt trivial: post-release version bump May 13, 2020
COPYING Initial awesome commit of Cutelyst Oct 29, 2013
MAINTAINERS Initial awesome commit of Cutelyst Oct 29, 2013
Messages.sh Add CuteleeView files to Messages.sh to extract translation strings Apr 4, 2020
NEWS Initial awesome commit of Cutelyst Oct 29, 2013
README.md Add support for Cutelee view Mar 29, 2020
RELEASE Initial awesome commit of Cutelyst Oct 29, 2013
TODO Initial awesome commit of Cutelyst Oct 29, 2013
appveyor.yml disable Cutelee on appveyor May 11, 2020
config.h.in Add I18NDIR to the variables substituted in config.h.in Feb 8, 2018

README.md

Cutelyst - The Qt Web Framework Cutelyst logo

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.

You can’t perform that action at this time.