Cutelyst 0.5.0

A bit more than one year after the initial commit, Cutelyst makes it’s 5th release.

It’s now powering 3 commercial applications, the last one recently got into production and is the most complex of them, making heavy use of Grantlee and Cutelyst capabilities.

Speaking of Grantlee if you use it on Qt5 you will get hit by QTBUG-41469 which sadly doesn’t seems to get fixed in time for 5.4, but uWSGI can constrain your application resources so your server doesn’t go out of memory (worth the leak due to it’s usefulness).

Here is an overview since 0.4.0 release:

  • Remove hardcode build setting to “Debug”, so that one can build with “Release” increasing performance up to 20% –
  • Request::uploads() API was changed to be useful in real world, filling a QMap with the form field name as a key and in the proper order sent by the client
  • Introduced a new C_ATTR macro which allows to have the same Perl attributs syntax like C_ATTR(method_name, :Path(/foo/bar) :Args)
  • Added an Action class RoleACL which allows for doing authorization on control lists, making it easy to deny access to some resources if a user doesn’t match the needed role
  • Added a RenderView class to make it easier to delegate the rendering to a view such as Grantlee
  • Request class is now QObject class so that we can use it on Grantlee as ctx.request.something
  • Make use of uWSGI ini (–init) configuration file to also configure the Cutelyst application
  • Better docs
  • As always some bugs were fixed

I’m very happy with the results, all those site performance tools like webpagetest give great scores for the apps, and I have started to work on translating Catalyst tutorial to Cutelyst, but I realize that I need Chained dispatcher working before that…

If you want to try it, I’ve made a hello-world app available today at

Download here!

Cutelyst 0.5.0

6 thoughts on “Cutelyst 0.5.0

  1. Judging the comments on codereview, they’re willing to pull the fix for 5.4 … at least that’s what I think Thiagos comments are about (“I’d say go ahead and make it public now in 5.4. It’s barely a new feature.” and “Still, go ahead and do the full change now.”).

    1. dantti says:

      Yup, that’s what I hope for but still that’s 20 days ago and afaik RC is at the door, so I’m crossing fingers 😛

      1. ggrabler says:

        Maybe contact Thiago whats holding the pull.. He usually is pretty fast responding to this kind. Judging the comments due to ABI in MSVC they cant inline it now, so it is probably the cleanest possible solution possible at this point of time.

  2. Olivier says:

    It seems that is not up to date (Doxygen footer shows a July date).
    By the way, I’m not used to catalyst, and even though they have a huge doc, I’m confused with perl’s syntax, to evaluate if I could do what I want, I know it’s a lot of work, but could you write some “tutorial” explaining the untitled app structure so that we have a more interesting example than the hello world to work on.

    Thank you

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s