sgcWebSockets 2026.10

· Versions
sgcWebSockets 2026.10

sgcWebSockets 2026.10 est disponible. Deux fils conducteurs traversent cette version : sgcHTML s'est enrichi des parties dont a besoin une application web métier et que vous n'aurez plus à écrire à la main, et la cryptographie est devenue post-quantique sans ajouter la moindre bibliothèque externe.

Applications web : la partie fastidieuse, réglée

Sessions, connexion et CSRF. Le nouveau composant TsgcHTMLAuth et ses magasins de sessions gèrent le cookie, répondent aux requêtes de connexion et de déconnexion, ferment les sessions inactives et limitent les tentatives de connexion échouées. Le jeton CSRF voyage dans une balise meta, htmx l'ajoute de lui-même à chaque requête, et le serveur rejette un post qui ne le porte pas.

FAuth := TsgcHTMLAuth.Create(Self);
FAuth.SessionStore := TsgcHTMLSessionStore_Memory.Create(Self);
FAuth.CookieName := 'app_session';
FEngine.Auth := FAuth;

Des routes qui se lisent comme des routes. Des paramètres de chemin, un filtre de méthodes, et l'accès aux en-têtes, aux cookies et au corps de la requête :

with FRouter.Routes.Add do
begin
  Path := '/customers/{id}/edit';
  Methods := [hrmGet, hrmPost];
  RequireLogin := True;
  RequireRoles := 'admin,sales';
end;

Des pages que vous pouvez tester. DispatchDirect répond à une requête sans qu'il y ait de socket derrière, et une nouvelle unité lit le HTML généré, trouve les éléments par id, classe, balise ou attribut, et compare une page à une copie sauvegardée, de sorte qu'un changement involontaire dans le balisage soit repéré par un test plutôt que par un client.

Une navigation qui donne l'impression d'une application. Les pages changent sans rechargement complet et conservent la position de défilement et ce que l'utilisateur était en train de saisir, avec une barre de chargement, une boîte de dialogue quand la connexion se coupe et un message quand une requête échoue. Tout cela désactivé par défaut.

Les quatre fonctionnalités phares

Chacune d'elles a son propre article, lié à la fin, alors voici seulement ce qu'elle est :

Le push, de deux façons

Les server sent events peuvent désormais transporter les mises à jour à la place d'un WebSocket, avec rejeu de ce qui a été manqué pendant la déconnexion, et cela fonctionne avec le serveur HTTP classique. Web Push atteint un navigateur qui est fermé. Une boîte de réception de notifications et une table de préférences les accompagnent, et le composant de notification décide quel canal reçoit un utilisateur donné.

IA : des réponses exploitables

TsgcAIChat peut demander un JSON qui suit un schéma que vous fournissez, chez OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok et Mistral, via la nouvelle méthode ChatJSON, qui analyse la réponse et redemande une fois de plus, en joignant l'erreur d'analyse, lorsqu'elle ne peut pas être lue. Le composant de chat envoie et reçoit désormais aussi des images, et BaseUrl est maintenant respecté par chaque fournisseur et non plus seulement par Ollama, si bien que n'importe lequel d'entre eux peut être pointé vers un proxy ou une passerelle locale.

Cryptographie : post-quantique, en Object Pascal

ML-KEM (FIPS 203), ML-DSA (FIPS 204) et SLH-DSA (FIPS 205), encapsulation de clé hybride X-Wing, certificats X.509 post-quantiques et autorités de certification, et JWT signés avec ML-DSA. Le tout écrit en Object Pascal dans le pack sgcCrypto, sans aucune bibliothèque externe, validé face aux vecteurs de réponses connues du NIST.

Par-dessus repose un moteur TLS 1.3 natif, lui aussi en Pascal pur : un client ou un serveur parle TLS sans OpenSSL et sans SChannel, en négociant les groupes hybrides post-quantiques de la RFC 10024, avec ALPN, S N I, les certificats client et l'utilisation optionnelle du magasin de confiance du système d'exploitation.

Le côté classique a été renforcé dans la même passe : RSA en temps constant avec blinding, multiplication scalaire de courbe elliptique en temps constant et Ed25519, AES et GHASH sans tables, clés privées importées vérifiées face à leur moitié publique, et signatures DER non minimales rejetées.

Des corrections qui méritent d'être citées

.NET

La bibliothèque .NET suit le rythme : authentification et sessions avec un pont ClaimsPrincipal pour ASP.NET Core, le routeur, les outils de test, la navigation SPA, le transport SSE avec un point de terminaison natif, la sortie structurée, l'AI Data Pack, Web Push, MCP Apps et le composant CRUD avec ses adaptateurs, le tout avec les mêmes noms d'API qu'en Delphi.

Mise à niveau

Tout ce qui est nouveau est additif et désactivé par défaut. Ajoutez les nouvelles unités, recompilez vos packages, et une application existante se comportera exactement comme avant.

Les versions complètes

Voir la vidéo

Il existe une courte vidéo à ce sujet sur la chaîne eSeGeCe.

Des questions, un retour ou besoin d'aide pour la migration ? Contactez-nous — vous recevrez une réponse des personnes qui ont écrit le code.