The year is about to end and so is Cutelyst v1 series, I wasn't planning for another release this year but Matthias added some nice new features that I decided to roll 1.12 in 2017 branching 1.x.x series and master is now officially Cutelyst 2 with no stable API/ABI until 2.0.0 is tagged.
HTTP/2 support will hopefully be part of Cutelyst 2.0.0, there aren't any drastic changes in v2, most important thing is fixing MSVC builds and removing deprecated API.
Back to this release it includes a new CSRF protection plugin, with a Grantlee tag similar to what Django has. Add to this many fixes and the epoll event loop dispatcher is now even faster and got many fixes, performance wise it's great advantage is when dealing with many simultaneous connections, it can lead to 2-3 times faster than default glib one.
Happy new hacking year!
Cutelyst the Qt Web framework got a new release, this is likely to be the last of the year and will be one of lasts releases of the 1.x.x series. I'd like to add HTTP/2 support before branching 1.x.x and having master as 2.0 but I'm not yet sure I'll do that yet.
For the next year I'd like to have Cutelyst 2 packaged on most distros soon due Ubuntu's LTS being released in April, and H2 might delay this or I delay it since it can be done using a front-end server like Nginx.
The 1.11.0 version includes three new plugins written by Matthias Fehring, a Memcached plugin that simplifies talking to a memcached server, a memcached based session store, that stores session information on the memcached server, and a static compressed plugin to serve compressed versions of static files.
Besides that I extended the EngineRequest class to serve as a base class for Engine's requests allowing to get rid of some ugly casts and void pointers that carry the real request/connection. This doesn't affect user code as long as they don't implement their own engine.
Setting a Json reply is now a bit simpler now that two overloads directly accepting QJsonObject and QJsonArray were added.
Cutelyst license preamble on files was fixed to state it's LGPLv2.1+, and finally pkg-config is now fully supported.
Go get/break/package/.* it!
Cutelyst the Qt Web Framework got a new release, another round of bug fixes and this time increased unit testing coverage.
RoleACL plugin is a very useful one, it was written due the need for controlling what users could access, sadly the system I wrote that needed this got unused (although I got my money for this) so this plugin didn't get much attention, partially because it was basically complete.
Then last release I added documentation to it due a user's request and shortly after I found out that it wasn't working at all, even worse it wasn't forbidding users like it should do. So after the fix I moved on writing unit test for many other stuff. There's still missing stuff but overall coverage is much larger now.
Cutelyst the Qt web framework got a new release. This is a rather small release but has some important fixes so I decided to roll sooner.
The dispatcher logic got 30% faster, parsing URL encoded data is also a bit faster on some cases (using less memory), Context objects can now be instantiated by library users to allow for example getting notifications from SQL databases and be able to forward to Cutelyst actions or Views, pkg-config support has also improved a bit but still misses most modules.
Sticklyst is a web paste tool, like pastebin, Stick Notes (paste.kde.org), build with Cutelyst and KDE Frameworks.
Building this kind of tool has been on my TODO list for a long time, but never really put some effort into it. When the idea first came by, I decided to look at the code of http://paste.scsys.co.uk/ which is powered by a Perl Catalyst application, to my surprise the Perl module that handled syntax highlighting was a port of the code of Kate, and it even said it used Kate's definitions.
If that code used Kate's, I'd better use the code directly, I hoped it wouldn't be too coupled with GUI classes, but failed to find the code. A week ago I saw a mention about this on KDE's mailing list, so with a little help from some IRC fellows I met the https://cgit.kde.org/syntax-highlighting.git/ code.
Then thanks to some tips from Volker Krause who showed me how to use it without GUI widgets, I managed to build a simple web app, which I presented live on the first Qt conference here in Brazil at São Paulo https://br.qtcon.org/.
Just for record the application uses less than 3MB of RAM and renders quickly using a sqlite db for the storage.
The code is 90% completed, is on production at https://paste.cutelyst.org/, and is now up for adoption. Basically someone willing to take care of it could implement the following missing features compared to Stick Notes:
- Extra database support
- URL shortener
- User authentication
The list is short and the code is clean, go test, break, hack: