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.
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.
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.
A raw QUIC transport and an HTTP/3 client and server for Delphi, C++ Builder and .NET. An add-on to sgcWebSockets Enterprise, on the same native OpenSSL 3.5 QUIC engine. Full source, royalty-free deployment.
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.
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.
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.
A client that has connected before can send its first request on the very first packet, before the handshake finishes.
A Connection ID identifies the session, not the IP address, so a phone moving from Wi-Fi to cellular keeps its streams open.
Bidirectional streams and unreliable datagrams over one Extended CONNECT request, for browser clients that speak WebTransport.
Worked guides for the QUIC and HTTP/3 components:
The same shape as any other sgcWebSockets HTTP client: set properties, handle an event, call a method.
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;
The client and server share the same connection, stream and datagram model on both sides. The full feature matrix →
TsgcHTTP3Server speaks HTTP/3 over QUIC on a UDP port, while TsgcHTTP3ServerBridge-style pairing with an existing HTTP/2 server lets legacy clients keep working over TCP. Advertise Alt-Svc and modern clients upgrade themselves.
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;
A single Delphi component that terminates QUIC, negotiates h3 and routes every request to one handler, with the same certificate your HTTP/2 server already loads.
A 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.
An Extended CONNECT request upgrades a stream to WebTransport, giving a browser client bidirectional streams and datagrams alongside ordinary HTTP/3 requests.
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.
sgcQUIC is an add-on to sgcWebSockets Enterprise, so the license, the support channel and the update cadence are the ones you already have.
sgcQUIC is one of ten eSeGeCe component libraries for Delphi, C++ Builder and .NET. They share conventions, they ship with full source, and they deploy royalty-free.
Raw QUIC transport and an HTTP/3 client and server, with WebTransport. An add-on to sgcWebSockets Enterprise.
Learn more →WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI and 30+ API integrations. The Enterprise license sgcQUIC builds on.
Learn more →Server-side HTML and UI components on Bootstrap 5 and htmx. Serve the rendered UI over the same HTTP/3 transport.
Learn more →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.
Learn more →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.
Learn more →OAuth2 client, JWT client and WebAuthn support for Delphi and C++ Builder. Sign in with any OAuth2/OIDC provider, issue and verify JWTs, and add passkey authentication to native apps. Standalone, with the sgcWebSockets Core runtime bundled in.
Learn more →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.
Learn more →REST server, OpenAPI server and OpenAPI client components for Delphi and C++ Builder. Publish REST APIs from an OpenAPI 3.x contract, or consume any OpenAPI-described API. Standalone, with the sgcWebSockets Core runtime bundled in.
Learn more →OpenAPI 3.x parser, native Pascal SDK generator, OpenAPI server component, and 1,195+ pre-built cloud SDKs.
Learn more →XAdES, PAdES, CAdES and ASiC for documents, Authenticode, ClickOnce, NuGet and VSIX for code.
Learn more →Windows Hello, fingerprint sensors and the Windows Biometric Framework for Delphi and C++ Builder.
Learn more →Updated Indy TCP/IP components with modern TLS, IPv6 and HTTP/2 for Delphi 7 through 13.
Learn more →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!
sgcWebSockets is amazing and your support is the best!
Thanks so much for your help and support, I love your components.