sgcWebSockets 2026.10

· リリース
sgcWebSockets 2026.10

sgcWebSockets 2026.10がリリースされました。このバージョンには二つの軸があります。sgcHTMLはビジネス向けWebアプリケーションに必要な部分を備え、もう手で書く必要がなくなりました。そして暗号まわりは、外部ライブラリを一つも追加することなくポスト量子に対応しました。

Webアプリケーション:面倒な部分を片付ける

セッション、ログイン、CSRF。新しいTsgcHTMLAuthコンポーネントとそのセッションストアが、クッキーを管理し、ログインとログアウトの要求に応答し、アイドル状態のセッションを終了させ、失敗したログイン試行を制限します。CSRFトークンはmetaタグに載って運ばれ、htmxがすべてのリクエストに自動で追加し、サーバーはそれを持たないpostを拒否します。

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

ルートらしく読めるルート。パスパラメーター、メソッドフィルター、そしてヘッダー、クッキー、ボディへのアクセス:

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

テストできるページ。DispatchDirectはソケットなしでリクエストに応答し、新しいユニットが生成されたHTMLを読み取り、id、クラス、タグ、属性で要素を見つけ、ページを保存済みのコピーと比較します。これにより、マークアップの意図しない変更を、顧客ではなくテストが検知します。

アプリケーションのように感じられるナビゲーション。ページはフルリロードなしで切り替わり、スクロール位置とユーザーが入力していた内容を保持し、ローディングバー、接続が切れたときのダイアログ、リクエストが失敗したときのメッセージを備えます。これらはすべて既定でオフです。

四つの目玉機能

それぞれに個別の記事があり、末尾にリンクしているので、ここではそれが何かだけを紹介します:

プッシュ、二つの方法

Server sent eventsは、今やWebSocketの代わりに更新を運べるようになり、切断中に見逃した内容の再送にも対応し、通常のHTTPサーバーでも動作します。Web Pushは、閉じているブラウザにも届きます。これらには通知の受信箱と設定テーブルが付属し、通知コンポーネントが、あるユーザーがどのチャネルを受け取るかを判断します。

AI:そのまま行動に移せる答え

TsgcAIChatは、新しいChatJSONメソッドを通じて、OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistralに対して、指定したスキーマに従うJSONを要求できます。このメソッドは応答を解析し、読み取れない場合は解析エラーを添えてもう一度尋ねます。チャットコンポーネントは今や画像の送受信にも対応し、BaseUrlはOllamaだけでなくすべてのプロバイダーで尊重されるようになったので、どのプロバイダーもプロキシやローカルゲートウェイに向けられます。

暗号:Object Pascalによるポスト量子

ML-KEM(FIPS 203)、ML-DSA(FIPS 204)、SLH-DSA(FIPS 205)、X-Wingハイブリッド鍵カプセル化、ポスト量子対応のX.509証明書と認証局、そしてML-DSAで署名されたJWT。これらはすべて外部ライブラリなしでsgcCryptoパック内にObject Pascalで書かれており、NISTの既知応答ベクトルに対して検証済みです。

その上には、同じく純粋なPascalによるネイティブTLS 1.3エンジンがあります。クライアントもサーバーも、OpenSSLもSChannelも使わずにTLSで通信し、RFC 10024のハイブリッドポスト量子グループをネゴシエーションし、ALPN、S N I、クライアント証明書、そしてオペレーティングシステムの信頼ストアの任意利用に対応します。

従来側の暗号も同じ作業で強化されました。ブラインディングを施した定数時間RSA、定数時間の楕円曲線スカラー倍算とEd25519、テーブルを使わないAESとGHASH、インポートされた秘密鍵を公開鍵の半分と突き合わせて検証する仕組み、そして最小形式でないDER署名の拒否です。

特筆すべき修正

.NET

.NETライブラリも歩調を合わせます。ASP.NET Core向けのClaimsPrincipalブリッジを備えた認証とセッション、ルーター、テスト用ヘルパー、SPAナビゲーション、ネイティブエンドポイントを持つSSEトランスポート、構造化出力、AI Data Pack、Web Push、MCP Apps、そしてアダプター付きのCRUDコンポーネントまで、すべてDelphiと同じAPI名で提供します。

アップグレード

新しいものはすべて追加的で、既定ではオフになっています。新しいユニットを追加してパッケージを再ビルドすれば、既存のアプリケーションはこれまでとまったく同じように動作します。

ロングバージョン

動画で見る

この内容についての短い動画eSeGeCeチャンネルにあります。

質問、フィードバック、移行のお手伝いが必要ですか?お問い合わせください — コードを書いた本人たちから返信が届きます。