sgcHTTP Feature Matrix

Everything sgcHTTP does, mapped across the HTTP server, the HTTP/2 client, the gRPC client and the three Google Cloud clients. Every capability works the same in Delphi and C++ Builder, and every license ships full source code. Component subpages are not published yet for this launch, each entry below is self-contained on this page.

HTTP Server

Endpoints, static files, sessions, TLS

HTTP/2 Client

Multiplexed streams, HPACK, ALPN

gRPC Client

Unary & streaming RPC

Google Cloud

Pub/Sub, Calendar & FCM

Standards & Platforms

Delphi 7 to 13, C++ Builder

sgcHTTP is self-contained. It ships with the sgcWebSockets Core runtime bundled in, so it is not an add-on. The HTTP server, TsgcHTTPServer, is part of that runtime.

HTTP/2 and gRPC need sgcCustomIndy. Both classes require ALPN for TLS protocol negotiation, which the standard Indy library does not support, so they are built on sgcCustomIndy instead. It is always included in your order, and the sgcHTTP price shown already covers it. The three Google Cloud clients are plain HTTPS and do not need it.

Six Classes, Two Units

Three components on the SGC HTTP palette page and three code-only Google Cloud classes. The HTTP server is declared in the sgcHTTP_Server unit of the bundled Core runtime, everything else in the sgcHTTP unit.

ComponentClassPalette?Description
HTTP ServerTsgcHTTPServerYesHTTP server: request events, static files from a document root, compression, keep-alive, sessions, uploads, TLS and authentication. Ships with the Core runtime.
HTTP/2 ClientTsgcHTTP2ClientYesNative HTTP/2 client: multiplexed streams, HPACK header compression, ALPN negotiation. Needs sgcCustomIndy.
gRPC ClientTsgcGRPCClientYesgRPC client built on the HTTP/2 client: unary, server-streaming, client-streaming and bidirectional RPC. Needs sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNo, code-onlyGoogle Cloud Pub/Sub REST API: topics, subscriptions, snapshots, publish and pull. Plain HTTPS on Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNo, code-onlyGoogle Calendar API v3: calendars and events, create, update, list, delete. Plain HTTPS on Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNo, code-onlyFirebase Cloud Messaging HTTP v1 API: send a push notification payload with one call. Plain HTTPS on Core.

Endpoints, Static Files, Sessions

TsgcHTTPServer publishes HTTP endpoints and static files from your own application. It is the same engine as the sgcWebSockets WebSocket server without the WebSocket part, and it ships with the bundled Core runtime.

CapabilityAPINotes
ListeningPort, Bindings, ActiveSet the port, or bind to specific addresses, then activate the server.
RequestsOnCommandGet, OnCommandOtherEvery request reaches your code with its request and response objects. OnCommandOther covers verbs such as PUT and DELETE.
Static filesDocumentRootReturns static files from the folder you point it at.
CompressionHTTPCompressionResponse compression options.
ConnectionsKeepAlive, MaxConnectionsKeep connections open between requests, and cap how many are open at once.
SessionsSessionState, AutoStartSession, SessionTimeOut, OnSessionStart, OnSessionEndServer-side sessions with a timeout, plus start and end events.
Request limitsMaxRequestBodySizeCaps the size of a request body.
UploadsHTTPUploadFilesSaves uploaded files to a directory you choose.
TLSSSL, SSLOptionsServe HTTPS with your own certificate.
AuthenticationAuthentication, OnAuthenticationValidate credentials in your own code before a request is served.
ThreadsThreadPool, ThreadPoolOptionsReuse worker threads from a pool instead of creating one per connection.
RuntimesgcWebSockets CoreDeclared in the sgcHTTP_Server unit of the bundled Core runtime, on the SGC HTTP palette page.

Multiplexed Requests, HPACK, ALPN

TsgcHTTP2Client speaks HTTP/2 (RFC 9113) over a single TLS connection, negotiated with ALPN, which is why it is built on sgcCustomIndy.

CapabilityAPINotes
ConnectionHost, Port, ActiveOne TLS connection carries every multiplexed request stream.
ConnectConnect, ConnectAsyncOpens the connection and issues an optional request in the same call.
ReadGet, GetAsyncSynchronous call or fire-and-forget with the response delivered by event.
WritePost, PostAsync, Put, PutAsync, Patch, PatchAsyncRequest bodies are streams, so uploads do not have to fit in memory.
Delete & OptionsDelete, DeleteAsync, Options, OptionsAsyncThe rest of the HTTP verb set, same synchronous/async pairing.
ResponsesOnHTTP2ResponseDelivers the request and response objects together, including Response.DataString and status.
Chunked bodiesOnHTTP2ResponseFragmentFires as each fragment of a chunked response arrives, ahead of the final OnHTTP2Response.
Server pushOnHTTP2PushPromiseSurfaces HTTP/2 server-pushed resources as they arrive.
Connection lifecycleOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamThe connect, disconnect and stream-reset signals HTTP/2 defines.
SettingsHTTP2Options, SettingsThe local HTTP/2 SETTINGS frame values sent to the peer.
ReliabilityWatchDog, HeartBeat, ThrottleAuto-reconnect, keep-alive and request throttling, shared with the rest of the sgc HTTP stack.
Auth & TLSAuthentication, TLSOptions, OnHTTP2AuthorizationStandard authentication schemes and TLS configuration, plus a hook for custom authorization headers.
DependencysgcCustomIndyALPN negotiates the h2 protocol during the TLS handshake; the standard Indy library cannot do this.

Unary, Server, Client and Bidirectional Streaming

TsgcGRPCClient carries Protocol Buffers payloads over the HTTP/2 client's multiplexed streams, so it covers all four gRPC call shapes.

CapabilityAPINotes
TransportClientA TsgcHTTP2Client instance; the gRPC client rides on it rather than opening its own connection.
Unary RPCCall, CallAsync, CallStringOne request, one response. Call blocks and returns a TsgcGRPCResponse; CallAsync delivers it through OnGRPCResponse.
Server streamingServerStreamingCallOne request, a stream of responses delivered through OnGRPCStreamMessage until OnGRPCStreamEnd.
Client streamingOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncA stream of requests, one final response when the stream closes.
Bidirectional streamingOpenBidiStream, SendBidiMessage, CloseBidiStreamBoth sides stream independently over the same call.
CancellationCancelCallCancels a call in progress by its stream id.
ResponsesOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse carries StatusCode, Data/DataString, Headers and Trailers.
ErrorsOnGRPCError, OnGRPCExceptiongRPC status-code errors and transport-level exceptions, delivered separately.
MetadataDefaultMetadata, OnGRPCBeforeRequestPer-call and default gRPC metadata headers.
ResilienceRetryPolicy, Interceptors, ServiceConfigRetry behavior, a cross-cutting interceptor chain, and service configuration, without touching individual call sites.
ObservabilityMetricsCollectorCollects call metrics for the client.
DependencysgcCustomIndyInherited from the HTTP/2 client it is built on; ALPN is required the same way.

Pub/Sub, Calendar and Push Notifications

Three code-only classes, authenticated with a Google service account and reached over plain HTTPS. None of them need sgcCustomIndy.

CapabilityAPINotes
AuthenticationGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorService-account JWT: project id, client email and private key. Shared shape across all three clients.
Pub/Sub: publish & pullPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Send messages to a topic, pull and acknowledge from a subscription.
Pub/Sub: topicsCreateTopic, DeleteTopic, GetTopic, ListTopicsManage topics directly from code.
Pub/Sub: subscriptionsCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionFull subscription lifecycle, including ack-deadline and push-config changes.
Pub/Sub: snapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsSnapshot a subscription's acknowledgment state for later replay.
Calendar: calendarsNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Wraps the Google Calendar API v3 calendar list.
Calendar: eventsNewEvent, UpdateEvent, DeleteEvent, LoadEventsCreate, change and remove events on a given calendar.
Calendar: syncLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventIncremental synchronization hooks for calendars and events that changed since the last sync.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. One call sends a Firebase Cloud Messaging v1 payload to a project.
TLS and loggingTLSOptions, LogFileShared across all three Google Cloud clients.

APIs, Compilers and Targets

Public standards on the wire, and the same source across every supported compiler.

AreaDetail
HTTP serverHTTP requests and responses, static files, sessions and HTTPS through TsgcHTTPServer.
HTTP/2RFC 9113, with HPACK header compression and ALPN protocol negotiation.
gRPCProtocol Buffers payloads over HTTP/2 streams, following the gRPC wire protocol.
Google CloudThe Pub/Sub REST API, the Google Calendar API v3, and the Firebase Cloud Messaging HTTP v1 API, all authenticated with a Google service account.
PlatformsWindows Win32, Windows Win64, Linux64, macOS, iOS and Android for all five classes.
DependencyThe HTTP/2 and gRPC clients need sgcCustomIndy for ALPN. The Google Cloud clients need only the bundled Core runtime.
CompilersDelphi and C++ Builder 7 through 13.
EditionsHTTP/2 and gRPC also ship inside sgcWebSockets from Enterprise up, and the Google Cloud clients from Standard up. The HTTP server is part of the Core runtime, so every sgcWebSockets edition includes it too.
LicensingStandalone. The sgcWebSockets Core runtime is bundled in and full source code is included.
Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

Build with sgcHTTP

Download the free trial, publish your first HTTP endpoint, and make your first HTTP/2 or gRPC call from Delphi or C++ Builder.