sgcHTTPServidor HTTP, HTTP/2e gRPC nativos no Delphi.Google Cloud também.
Um servidor HTTP e cinco componentes cliente. TsgcHTTPServer publica endpoints HTTP e arquivos estáticos a partir da sua própria aplicação. TsgcHTTP2Client fala HTTP/2 com streams multiplexados em uma única conexão TLS e compressão de cabeçalhos HPACK. TsgcGRPCClient é um cliente gRPC construído sobre ele, para chamadas Protocol Buffers unárias e de streaming. Mais três classes chegam ao Google Cloud por HTTPS simples: Pub/Sub, Calendar e Firebase Cloud Messaging.
Guia rápido do sgcHTTP | HTTP/2 e gRPC a partir do Delphi
gRPC por cima
Servidor HTTP
TsgcHTTPServer
HTTP/2
h2 + HPACK
gRPC
Protocol Buffers
Google Cloud
HTTPS + JWT
3Componentes da paleta: o servidor HTTP e os clientes HTTP/2 e gRPC
5Classes cliente no total
3Serviços do Google Cloud: Pub/Sub, Calendar e FCM
1Instalador independente, runtime Core incluído
100%Código-fonte incluído em toda licença
Veja funcionando
Veja o sgcHTTP em dois minutos.
Um guia rápido narrado e legendado: um cliente HTTP/2 enviando muitas requisições por uma única conexão e, depois, uma chamada gRPC sobre esse mesmo transporte, tudo a partir do Delphi. Nada é baixado até você apertar o play.
Guia rápido do sgcHTTP
Chame um endpoint HTTP/2 e faça uma chamada gRPC, a partir do Delphi.
Crie o cliente HTTP/2Crie um TsgcHTTP2Client, trate o OnHTTP2Response e chame Get. O protocolo h2 é negociado durante o handshake TLS por meio do ALPN.
Muitas requisições, uma conexãoAs requisições compartilham uma única conexão TCP como streams independentes, então uma resposta lenta não bloqueia as demais que vêm depois dela.
gRPC sobre o mesmo transporteAtribua o cliente HTTP/2 ao cliente gRPC e chame um método por serviço e nome. As mensagens trafegam como Protocol Buffers com prefixo de tamanho.
Quatro padrões de RPCUnário, streaming do servidor, streaming do cliente e streaming bidirecional, cada um com o seu próprio método no TsgcGRPCClient.
Dois componentes da paleta
Um cliente HTTP/2 e o gRPC rodando sobre ele.
Os dois componentes estão declarados na sgcHTTP unit, e o TsgcGRPCClient carrega a sua própria conexão HTTP/2 por meio da propriedade Client .
Streams multiplexados em uma única conexão TLS
TsgcHTTP2Client fala HTTP/2 (RFC 9113): várias requisições compartilham uma única conexão TCP como streams independentes. Os cabeçalhos são comprimidos com HPACK, e o h2 é negociado durante o handshake TLS por meio do ALPN. Todos os verbos estão cobertos: Get, Post, Put, Patch, Delete e Options, cada um com uma chamada síncrona e uma versão Async equivalente.
RPC unário e de streaming sobre o cliente HTTP/2
TsgcGRPCClient herda a conexão multiplexada e adiciona o formato de transmissão gRPC por cima. Call e CallAsync cobrem RPCs unários, ServerStreamingCall trata um fluxo de respostas para uma única requisição, e OpenClientStream e OpenBidiStream cobrem o streaming do cliente e o streaming bidirecional. RetryPolicy, Interceptors e ServiceConfig acrescentam comportamento de repetição e lógica transversal sem mexer nos pontos de chamada.
Cinco classes cliente
Duas dependências, não cinco.
As cinco classes se dividem com clareza pelo que precisam por baixo. HTTP/2 e gRPC precisam de ALPN, o que significa sgcCustomIndy. O Google Cloud não precisa de nada além de HTTPS e uma conta de serviço, algo que o runtime Core incluído já oferece. O servidor HTTP vem desse mesmo runtime.
Servidor HTTP
TsgcHTTPServer publica endpoints HTTP a partir da sua própria aplicação. Defina Port, trate OnCommandGet, defina Active, e cada requisição chega ao seu código. OnCommandOther cobre verbos como PUT e DELETE. Vem com o runtime Core incluído.
HTTP/2
TsgcHTTP2Client multiplexa streams independentes em uma conexão TLS, comprime cabeçalhos com HPACK e negocia o h2 por meio do ALPN. Connect, Get, Post, Put, Patch, Delete e Options, síncrono ou Async.
gRPC
TsgcGRPCClient roda sobre o cliente HTTP/2: mensagens Protocol Buffers com prefixo de tamanho sobre streams HTTP/2, com RPCs unários, de streaming do servidor, de streaming do cliente e bidirecionais, além de política de repetição e interceptadores.
Google Cloud, HTTPS simples
TsgcHTTPGoogleCloud_PubSub_Client, TsgcHTTPGoogleCloud_Calendar_Client e TsgcHTTPGoogleCloud_FCM_Client acessam Pub/Sub, Calendar e Firebase Cloud Messaging, autenticados com uma conta de serviço do Google. Nenhum deles precisa do sgcCustomIndy.
Server push e corpos em chunks
Os eventos expõem o ciclo de vida da conexão: OnHTTP2Connect, OnHTTP2Response, OnHTTP2ResponseFragment para corpos em chunks, OnHTTP2PushPromise para server push, OnHTTP2GoAway e OnHTTP2Disconnect. Nada sobre o ciclo de vida dos streams fica escondido de você.
Uma dependência para dois, nenhuma para três
Os clientes HTTP/2 e gRPC são construídos sobre o sgcCustomIndy, que cobre a mesma faixa de plataformas do próprio sgcWebSockets. Os clientes do Google Cloud usam HTTPS simples, então rodam em qualquer lugar onde o runtime Core rode. Delphi 7 até o RAD Studio 13, e C++ Builder.
Código-fonte completo na caixa
Toda licença traz o código-fonte completo do servidor HTTP, dos cinco clientes e do runtime incluído, então as implementações em nível de protocolo podem ser depuradas passo a passo no seu próprio debugger. A distribuição é livre de royalties.
Crie o componenteOs clientes ficam na unit sgcHTTP, o servidor na sgcHTTP_Server. O TsgcGRPCClient carrega a sua própria conexão HTTP/2 por meio da propriedade Client.
Aponte para um hostBasta um host https://. O ALPN negocia o h2 durante o handshake TLS, e o HPACK comprime os cabeçalhos.
Ligue o evento de respostaOnHTTP2Response e OnGRPCResponse entregam o corpo decodificado, com a requisição e a conexão anexadas.
Envie, de forma síncrona ou nãoCada verbo e cada RPC tem uma chamada bloqueante e uma versão Async, então a thread da interface continua livre.
O que o sgcHTTP exige de você e o que não exige. As duas respostas são curtas, e ambas estão nesta página, não nas letras miúdas.
Dependências por cliente
cliente precisa do sgcCustomIndyTsgcHTTPServernão, vem com o runtime CoreTsgcHTTP2Clientsim, para o ALPNTsgcGRPCClientsim, roda sobre o TsgcHTTP2ClientTsgcHTTPGoogleCloud_PubSub_Clientnão, HTTPS simplesTsgcHTTPGoogleCloud_Calendar_Clientnão, HTTPS simplesTsgcHTTPGoogleCloud_FCM_Clientnão, HTTPS simplesO HTTP/2 negocia o h2 com ALPN durante o handshake TLS.
A biblioteca Indy padrão que acompanha o RAD Studio
não tem suporte a ALPN, então HTTP/2 e gRPC são
construídos sobre o sgcCustomIndy.
O sgcHTTP é independente
O runtime Core do sgcWebSockets está incluído: o servidor HTTP, a pilha de cliente HTTP/TLS por onde passam as requisições de todos os clientes e a camada JSON que decodifica as respostas do Google Cloud. Um instalador, código-fonte completo na caixa.
HTTP/2 e gRPC precisam do sgcCustomIndy
A negociação ALPN não é suportada pela biblioteca Indy padrão, então o TsgcHTTP2Client e, por extensão, o TsgcGRPCClient são construídos sobre o sgcCustomIndy em vez da biblioteca padrão. Ele é sempre incluído quando você pede o sgcHTTP, e o preço exibido já o cobre.
O Google Cloud precisa apenas de HTTPS
Os três clientes do Google Cloud se autenticam com o project id, o client email e a chave privada de uma conta de serviço do Google, e chamam as APIs REST pela pilha HTTPS simples do runtime Core. Sem biblioteca nativa, sem sgcCustomIndy.
Delphi e C++ Builder
O sgcHTTP funciona do Delphi 7 até o RAD Studio 13 e no C++ Builder. Os mesmos componentes também estão no sgcWebSockets Enterprise, então uma licença Enterprise ou All-Access que você já tenha pode cobrir o que precisa. O instalador de avaliação é o do sgcWebSockets All-Access, então o servidor HTTP e os cinco clientes podem ser avaliados hoje mesmo.
ALPN
HPACK
Protocol Buffers
JWT de conta de serviço
Código-fonte completo
O sgcHTTP implementa as superfícies publicadas de HTTP/2, gRPC e REST do Google Cloud em vez de embrulhar um SDK de fornecedor. Assim, streams, cabeçalhos, RPCs e notificações push são métodos e eventos de primeira classe, e o código-fonte completo significa que nada no meio do caminho é uma caixa-preta.
Parte do sgcWebSockets
Um único pacote do sgcWebSockets, licenciado separadamente.
O sgcHTTP inclui o runtime Core do sgcWebSockets sobre o qual é construído, e o complemento sgcCustomIndy de que HTTP/2 e gRPC precisam está sempre incluído. Toda licença traz o código-fonte completo e distribuição livre de royalties.
Single
1 licença de desenvolvedor. Use em uma máquina por vez.
€398
Team
2 licenças de desenvolvedor. Use em duas máquinas por vez.
€648
Site
Desenvolvedores ilimitados. Todas as máquinas da empresa.
€1,048
Componentes cliente HTTP/2, gRPC e Google Cloud para Delphi e C++ Builder, com o runtime Core do sgcWebSockets incluído. Já usa o sgcWebSockets Enterprise? Os mesmos componentes também estão lá.
Confiado por desenvolvedores Delphi, C++ Builder, Lazarus e .NET ao redor do mundo.
A biblioteca sgcWebSockets de vocês é muito útil e fácil de configurar. Continuem com o ótimo trabalho!
Simone MorettiDesenvolvedor Delphi
O sgcWebSockets é incrível e o suporte de vocês é o melhor!
Christian MeyerFundador & CTO
Muito obrigado pela ajuda e pelo suporte, eu adoro os componentes de vocês.
Mark SteinfeldCTO
HTTP moderno, gRPC e Google Cloud a partir de código nativo.
Um servidor HTTP, HTTP/2 multiplexado, gRPC com streaming e três clientes do Google Cloud, com o runtime Core do sgcWebSockets incluído e o código-fonte completo na caixa.
O sgcHTTP compartilha convenções com as outras bibliotecas de componentes da eSeGeCe para Delphi, C++ Builder e .NET. Todas acompanham o código-fonte completo e são distribuídas livres de royalties.