sgcQUIC Skip the round trips. Native QUIC.

TCP plus TLS needs three round trips before the first byte of a response arrives. QUIC folds the transport and the crypto handshake into one, and a resumed connection can send data on the very first packet. sgcQUIC gives Delphi, C++ Builder and .NET a native QUIC transport and an HTTP/3 client and server built on top of it, on the OpenSSL 3.5 QUIC engine.

An add-on to sgcWebSockets Enterprise. See pricing →
  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT
  • Connection migration
  • Delphi
  • C++ Builder
  • .NET
  • 4Components on one palette page
  • 4RFCs: 9000, 9114, 9204 and 9220
  • 1Round trip before data, against three for TCP plus TLS
  • 0-RTTFirst request on the first packet of a resumed session
  • 3Languages: Delphi, C++ Builder and .NET
Why QUIC

Same TLS 1.3 security. Fewer trips across the wire.

The transport handshake, the TLS handshake and the first request each cost a round trip over TCP. QUIC carries all three in one exchange.

TCP + TLS 1.3 QUIC (HTTP/3) Client Server Client Server SYN SYN-ACK ACK ClientHello ServerHello, cert Finished GET /pets/42 200 OK 3 round trips before data Initial + Handshake + GET Handshake + 200 OK 1 round trip before data On a resumed session 0-RTT: GET + early data Same TLS 1.3 security. Fewer trips across the wire.

TCP + TLS: three round trips

SYN, SYN-ACK and ACK open the socket. ClientHello, ServerHello and Finished set up TLS. Only then does the first request go out.

QUIC: one round trip

QUIC folds the transport and the crypto handshake into one exchange, so the request travels with the handshake and the response comes back with it.

Resumed: 0-RTT

A client that has connected before can send its first request on the very first packet, before the handshake finishes.

Watch it run

QUIC and HTTP/3 from Delphi, in a few minutes.

A narrated, captioned quickstart: an HTTP/3 server and client, then a raw QUIC connection with multiple streams. Nothing downloads until you press play.

sgcQUIC quickstart

Run an HTTP/3 server and client, and open a raw QUIC connection from Delphi.

  1. The HTTP/3 clientCreate it, call Get with a URL and read the response. The verbs, status codes and headers are the ones you already know.
  2. Synchronous or asynchronousHandle OnResponse and OnError, then call GetAsync, and the request runs without blocking your form.
  3. The HTTP/3 serverCreate a TsgcHTTP3Server, give it a port, a certificate and a private key, and handle OnH3Request.
  4. Raw QUIC and many streamsTsgcQUICClient on its own, with EnableMultiStream for independent streams, each ordered and flow controlled.
  5. Before you deployQUIC travels over UDP, so a firewall that only opens TCP 443 blocks it.
Four components

Raw QUIC, or HTTP/3 on top.

Use TsgcQUICClient and TsgcQUICServer for a bare transport with your own framing, or reach straight for TsgcHTTP3Client and TsgcHTTP3Server when the wire format is HTTP.

QUIC Client & Server

TsgcQUICClient and TsgcQUICServer speak raw QUIC: multiple independent streams on one encrypted connection, unreliable datagrams, and connection migration when the client's IP address changes mid-session.

View the QUIC components →

HTTP/3 Client & Server

TsgcHTTP3Client and TsgcHTTP3Server layer HTTP semantics on top: request and response headers compressed with QPACK, Alt-Svc discovery, and the same methods and status codes your HTTP/2 code already uses.

View the HTTP/3 components →

0-RTT Session Resumption

A client that has connected before can send its first request on the very first packet, before the handshake finishes.

Connection Migration

A Connection ID identifies the session, not the IP address, so a phone moving from Wi-Fi to cellular keeps its streams open.

WebTransport

Bidirectional streams and unreliable datagrams over one Extended CONNECT request, for browser clients that speak WebTransport.

Native QUIC, no external dependency

The QUIC and TLS 1.3 handshake run on OpenSSL 3.5's own QUIC engine. There is no separate QUIC library to build or vendor.

Built on the standards

QUIC and HTTP/3, to the letter of the RFCs.

sgcQUIC is not a partial implementation. Transport, framing, header compression and the WebTransport extension are all covered, on top of the native OpenSSL 3.5 QUIC engine.

RFC 9000

The QUIC transport protocol: streams, datagrams, flow control and connection migration.

RFC 9114

HTTP/3, the same request and response semantics as HTTP/2, carried over QUIC streams.

RFC 9204

QPACK header compression, designed for QUIC's out-of-order stream delivery.

RFC 9220

WebTransport over HTTP/3, bidirectional streams and datagrams on one Extended CONNECT request.

The code

One request over HTTP/3.

The same shape as any other sgcWebSockets HTTP client: set properties, handle an event, call a method. The server side is one component and one handler.

uses
  sgcHTTP3_Client;
var
  vClient: TsgcHTTP3Client;
begin
  vClient := TsgcHTTP3Client.Create(nil);
  vClient.Host := 'api.example.com';
  vClient.Port := 443;
  vClient.OnResponse :=
    procedure(Sender: TObject; const AStatus: Integer; const ABody: string)
    begin
      Memo1.Lines.Add(Format('%d: %s', [AStatus, ABody]));
    end;
  vClient.OnAltSvc :=
    procedure(Sender: TObject; const AAltSvc: string)
    begin
      Memo1.Lines.Add('Alt-Svc: ' + AAltSvc);  // h3 advertised over HTTP/2
    end;
  vClient.Connect;
  vClient.Get('/pets/42');
end;
uses
  sgcQUIC_Client;
var
  vQUIC: TsgcQUICClient;
begin
  vQUIC := TsgcQUICClient.Create(nil);
  vQUIC.Host := 'quic.example.com';
  vQUIC.Port := 4433;
  vQUIC.EnableMultiStream := True;
  vQUIC.OnQUICConnect :=
    procedure(Sender: TObject)
    var
      vStreamId: Int64;
    begin
      vStreamId := vQUIC.OpenStream;
      vQUIC.WriteData(vStreamId, 'ping');
    end;
  vQUIC.OnQUICStreamData :=
    procedure(Sender: TObject; const AStreamId: Int64; const AData: string)
    begin
      Memo1.Lines.Add(Format('stream %d: %s', [AStreamId, AData]));
    end;
  vQUIC.Active := True;
end;
uses
  sgcHTTP3_Server;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FServer := TsgcHTTP3Server.Create(nil);
  FServer.Port := 443;
  FServer.QUICOptions.SSLOptions.CertFile := 'server.crt';
  FServer.QUICOptions.SSLOptions.KeyFile  := 'server.key';

  // One handler for every incoming HTTP/3 request
  FServer.OnH3Request :=
    procedure(const Ctx: TsgcHTTP3Context)
    begin
      if Ctx.Path = '/pets/42' then
        Ctx.RespondJSON(200, '{"name":"Rex"}')
      else
        Ctx.Respond(404, 'Not found');
    end;

  FServer.Active := True;
end;
  1. One port, one certificate, two protocolsTsgcHTTP3Server speaks HTTP/3 over QUIC on a UDP port. Pair it with an existing HTTP/2 server and legacy clients keep working over TCP, with the same certificate your HTTP/2 server already loads.
  2. Alt-Svc, so upgrades are automaticA regular HTTP/2 response carries an Alt-Svc: h3=":443" header. Clients that understand it open QUIC on the next request, without a redirect or a second domain.
  3. WebTransport, on the same portAn Extended CONNECT request upgrades a stream to WebTransport, giving a browser client bidirectional streams and datagrams alongside ordinary HTTP/3 requests.

The client and server share the same connection, stream and datagram model on both sides. The full feature matrix →

The HTTP/3 server component

Part of sgcWebSockets

An add-on to sgcWebSockets Enterprise.

The license, the support channel and the update cadence are the ones you already have. Every license includes full source code, one year of updates and royalty-free deployment.

Single

1 developer license. Use on one machine at a time.

€149

Team

2 developer licenses. Use on two machines at a time.

€249

Site

Unlimited developers. All company machines.

€399

sgcQUIC requires sgcWebSockets Enterprise, which you can add to the same order. QUIC client and server, HTTP/3 client and server, QPACK, Alt-Svc and WebTransport, for Delphi, C++ Builder and .NET.

View pricing and editions
Testimonials

What Developers Say

Trusted by Delphi, C++ Builder, Lazarus and .NET developers around the world.

Your sgcWebSockets library is very useful and easy to setup. Keep up the good work!
Simone Moretti Delphi Developer
sgcWebSockets is amazing and your support is the best!
Christian Meyer Founder & CTO
Thanks so much for your help and support, I love your components.
Mark Steinfeld CTO

Ship QUIC and HTTP/3 without leaving your IDE.

Raw QUIC transport, HTTP/3 client and server, and WebTransport, on the OpenSSL 3.5 QUIC engine. Full source, royalty-free deployment, as an add-on to sgcWebSockets Enterprise.

More From eSeGeCe

Other Products by eSeGeCe

sgcQUIC shares conventions with the other eSeGeCe component libraries for Delphi, C++ Builder and .NET. They ship with full source, and they deploy royalty-free.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI and 30+ API integrations. The Enterprise license sgcQUIC builds on.

sgcHTML

Server-side HTML and UI components on Bootstrap 5 and htmx. Serve the rendered UI over the same HTTP/3 transport.

sgcAI

AI, LLM and MCP components for Delphi and C++ Builder. Seven LLM providers behind one component, plus MCP, embeddings and speech. Standalone, with the sgcWebSockets Core runtime bundled in.

sgcMQ

MQTT, AMQP 0.9.1 and 1.0, Apache Kafka and STOMP client components for Delphi and C++ Builder. Standalone, with the sgcWebSockets Core runtime bundled in.

sgcAuth

OAuth2 client, JWT client and WebAuthn support for Delphi and C++ Builder. Standalone, with the sgcWebSockets Core runtime bundled in.

sgcHTTP

HTTP server, HTTP/2 client, gRPC client and Google Cloud Pub/Sub, Calendar and FCM clients for Delphi and C++ Builder. Standalone, with the sgcWebSockets Core runtime bundled in.

sgcREST

REST server, OpenAPI server and OpenAPI client components for Delphi and C++ Builder. Standalone, with the sgcWebSockets Core runtime bundled in.

sgcOpenAPI

OpenAPI 3.x parser, native Pascal SDK generator, OpenAPI server component, and 1,195+ pre-built cloud SDKs.

sgcSign

XAdES, PAdES, CAdES and ASiC for documents, Authenticode, ClickOnce, NuGet and VSIX for code.

sgcPDF

Create, edit, view, sign, redact and validate PDF files in pure Object Pascal, with no DLL to deploy. Licensed on its own.

sgcBiometrics

Windows Hello, fingerprint sensors and the Windows Biometric Framework for Delphi and C++ Builder.

sgcIndy

Updated Indy TCP/IP components with modern TLS, IPv6 and HTTP/2 for Delphi 7 through 13.

Latest from the blog

View all posts →

You are seeing the sgcQUIC view of eSeGeCe.

Show me another angle →
30-Day Money-Back GuaranteeNot satisfied? Request a full refund within 30 days of purchase. See refund policy