Cutelyst v3.5 relicensed as BSD-3-Clause

Cutelyst the Qt Web framework just got a new license, the more permissive BSD-3-Clause. Back in 2013 when I started the project the LGPL was a perfectly fine license as software on servers can be closed as long they are not AGPL, thus it was permissive enough for the web and REST backends use-cases I had in mind.

Fast-forward almost 10 years and I have used for a few of projects where it was embedded into another application, and I realized that there might be users with commercial Qt license that would like to use it but can't due the current license.

Hesitate no more! It's amazing how much nicer it is to implement client-server applications using HTTP/REST APIs all with Qt/C++, and when real time is needed WebSockets is also there to the rescue.

Since Ubuntu 22.04 has Qt 5.15 and 6.2 releases, for the next releases 5.15.2 will be the new minimum as I want to increase the QStringView usage eventually doing a major version update.

*UPDATE: This release includes a QtWidgets example application showing how to use Cutelyst::Server embedded into a GUI application.

Cutelyst 3.2 and ASql 0.50 are out!

Cutelyst the Qt Web Framework got a new release, Yes, I fotgot to make a post about Cutelyst 3.1, so to sum up:

  • Support for SSl::Ec
  • Faster parsing of application/x-www-form-urlencoded body
  • Cutelee v6 support
  • Fix server usage without --reuse-port (added SO_REUSEADDR)
  • Documentation fixes
  • Increased usage of std::shared_ptr

ASql the async Qt SQL library also got an update, it's API is rather stable now, main changes were:

  • Fix memory leak on ACache
  • Proper std::shared_ptr usage
  • Postgres driver is now a separate library ASql::Pg
  • Paved the way to have multiple drivers (yes MySQL is planned)

As always have fun and a happy new year!

Cutelee 6 released

Cutelee is templating engine forked from Grantlee. This major release was created to support both Qt5 and Qt6, it was not an easy port due Qt6 changes to QVariant, we got some patches for this port, and I finished the remaining issues.

It differs from Grantlee in which it already has support for more Django template tags, a few performance optimizations, and most importantly to me is the ability to extend without the hassled of creating a plugin and have it installed in some magical place. You can just register it with the engine and be done with it.


Cutelyst 3 is out!

Cutelyst, the C++/Qt web framework just got a new major release.

Under the hood it now has both Qt5 and Qt6 support, but because of this a few things had to be changed, the most important one was QMap usage as a multi-key container had to be changed to QMultiMap, if you used ParamsMultiMap types or auto when assigning there's probably little to do, one major exception is that if you still use Grantlee it might not work well, but Cutelee is there with fixes and is almost ported to Qt6.

Another API changes were on the authentication classes that have some friendly methods for QString passwords, WSGI module is now called Cutelyst::Server, it allows you to embed Cutelyst on other applications or have it as a stand alone executable, allowing for better LTO as you can get all stuff compiled as static libraries.

For the future I'm leaning towards increasing minimum version to Qt 5.12 (sadly means LGPLv2 for Qt5.6 will be gone) to start using QStringView where possible.

Simple-Mail Qt library 2.3 released

SimpleMail is a small Qt library for sending mails, this release makes sure it compiles fine with Qt6, and has some small issues fixed.

I thought this would give me a bit of work but was mostly changing CMakeLists.txt and including one header.

This week I'll start working for KDAB :) and my first task will be porting one app to Qt6, so I decided to do a little of homework and port my own stuff first as you might have noticed (Cutelyst and ASql).