Sortie de Cutelyst 1.7,
le framework Web basé sur Qt gère maintenant les sockets Web et le réveil par systemd

Cutelyst est un framework Web écrit en C++ et utilisant Qt. L’un de ses grands avantages par rapport à la concurrence est probablement sa performance, il dépasse allègrement les plus connus et les plus utilisés.

La version 1.7 vient de sortir. L’un de ses apports est une implémentation de l’API HTML5 Web Sockets. Son API est très proche de l’implémentation de Qt 5 (QWebSocket), mais avec un degré de contrôle nettement plus fin. Par exemple, la première chose à faire est d’initialiser le protocole :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
c->response->webSocketHandshake()
Ensuite, on peut écrire une application à l’aide de signaux et slots : ping/pong pour garder la connexion active, envoi et réception de trames binaires et messages textuels. Par exemple, pour simplement renvoyer le message textuel reçu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
connect(req, &Request::webSocketTextMessage, [=] (const QString &msg) {
  qDebug() << "Got text msg" << msg;
  response->webSocketTextMessage(msg);
});
Cette implémentation est légèrement plus rapide que celle de Qt, utilise moins de mémoire, mais passe néanmoins tous les tests Autobahn. La seule limitation est que les échanges ne peuvent pas être compressés.

Un serveur Cutelyst peut aussi maintenant être lancé par systemd lorsqu’un paquet est reçu. Ce mode de fonctionnement est extrêmement efficace : le temps de réaction est simplement doublé par rapport au cas où Cutelyst est déjà lancé.

Source : Cutelyst 1.7.0 released! WebSocket support added.

Et vous ?

Que pensez-vous de cette nouvelle version de Cutelyst ?