sgcIndy vs Indy — cosa cambia

sgcIndy è una distribuzione mantenuta, patchata e modernizzata della libreria Indy, non un fork o un sostituto. Questa pagina elenca esattamente ciò che sgcIndy aggiunge al lavoro originale di Indy realizzato dall'Indy Pit Crew (Remy Lebeau, Hadi Hariri e l'Indy Working Group) e ciò che rimane invariato.

Due modi per usare Indy

Un riassunto di un paragrafo per ciascuna opzione, con un link alla documentazione o al repository ufficiale. Il confronto dettagliato è nella matrice qui sotto.

Indy

Indy Pit Crew — Remy Lebeau, Hadi Hariri, l'Indy Working Group · Doppia licenza: Indy Modified BSD o Indy MPL

La libreria originale Internet Direct, con doppia licenza (Modified BSD / MPL) e mantenuta dall'Indy Pit Crew su GitHub all'indirizzo IndySockets/Indy. Inclusa in ogni installazione recente di RAD Studio, copre socket TCP/UDP/raw oltre a più di 120 client e server di protocollo di alto livello (HTTP, FTP, SMTP, POP3, IMAP, NNTP, IRC e altri). L'integrazione OpenSSL attuale (IdSSLOpenSSL.pas / IdSSLOpenSSLHeaders.pas) ha come target l'ABI OpenSSL 1.0.x; l'enum della versione TLS si ferma a TLSv1.2. SASL OAuth2 / XOAUTH2 è fornito tramite IdSASLOAuth.pas.

Pagina ufficiale

Confronto affiancato delle funzionalità

Un segno di spunta () indica che il progetto documenta il supporto nativo nel sorgente attuale. Un trattino () indica che il progetto non lo fornisce nativamente. Una tilde (~) indica supporto parziale / tramite add-on / non verificato — consulta la sezione Fonti per ciò che è stato verificato.

Crittografia, protocolli, piattaforme, distribuzione

18 righe
Funzionalità Indy sgcIndy
Supporto OpenSSL 1.0.x I binding hanno come target l'ABI OpenSSL 1.0.x legacy
Supporto OpenSSL 1.1.x Binding per l'API OpenSSL 1.1.x (LTS corrente fino al 2023)
Supporto OpenSSL 3.0.x Binding per l'API basata su provider di OpenSSL 3.x
TLS 1.3 TLS 1.3 selezionabile nelle opzioni SSL
Componente client SSH (TIdSSHClient) Client SSH 2.0 (IdSSHClient.pas) con autenticazione tramite chiave e password, canali exec / shell e port forwarding — non fornito da Indy upstream
Componente client SFTP (TIdSFTPClient) Client SFTP v3 su SSH (IdSFTPClient.pas) per upload / download di file e listing delle directory — Indy upstream include solo FTP / FTPS, non SFTP
XOAuth2 SMTP / IMAP / POP3 Meccanismo SASL RFC 7628 / Google XOAUTH2
IPv6 nativo Supporto nativo per socket IPv6
Compatibile con Delphi 7 Compila sulla toolchain originale Delphi 7
Compatibile con RAD Studio 13 Compila su RAD Studio 13 Florence
Compatibile con Lazarus / FPC Compila con Free Pascal / Lazarus
Compatibile con C++ Builder Target C++ Builder VCL / FMX
Installer automatico per ogni versione di Delphi / C++ Builder Installer one-click che rileva ogni IDE installato e registra i package runtime + design-time, i percorsi delle librerie e i percorsi di ricerca dei BPL
Binari DCU compilati disponibili Download di DCU / BPL precompilati
Codice sorgente completo incluso Sorgente Pascal disponibile per lo sviluppatore
Gratuito per uso commerciale La licenza consente la distribuzione royalty-free in applicazioni commerciali
Manutenzione attiva (ultimi 12 mesi) Release o tag negli ultimi 12 mesi ~
Incluso con la libreria eSeGeCe Distribuito insieme a sgcWebSockets / sgcOpenAPI / sgcSign / sgcBiometrics in All-Access
Supporto nativo documentato Non fornito nativamente ~ Parziale / tramite add-on / non verificato

Patch e modernizzazioni su Indy

sgcIndy mantiene il modello di componenti e i nomi delle classi Indy (sotto il prefisso sgcId*), quindi vi sovrappone binding OpenSSL moderni, TLS 1.3, binari pacchettizzati e una cadenza di rilascio condivisa con il resto della libreria eSeGeCe.

Binding OpenSSL 1.1.x

Header per l'ABI OpenSSL 1.1.x oltre all'API legacy 1.0.x, in modo da poter collegare libssl-1_1 / libcrypto-1_1 senza modificare le unit SSL originali di Indy.

Binding OpenSSL 3.0.x

Header per l'architettura basata su provider di OpenSSL 3.x, comprese le routine di rilevamento della versione (OpenSSL_version_num, OpenSSL_version) esportate dalla libreria 3.x.

TLS 1.3 nelle opzioni SSL

L'enum TIdSSLVersion è esteso con sslvTLSv1_3 e il contesto OpenSSL applica SSL_OP_NO_TLSv1_3 / lo cancella in base al probing a runtime tramite IsOpenSSL_TLSv1_3_Available.

Packaging XOAuth2

I meccanismi SASL XOAuth2 / OAuth2 Bearer sono inclusi nella distribuzione incapsulata — le stesse classi TIdSASLXOAuth2 e TIdSASLOAuth2Bearer fornite da Indy, pronte all'uso con i client SMTP / IMAP / POP3 inclusi.

Distribuzione precompilata da Delphi 7 a RAD Studio 13

Binari DCU e BPL pacchettizzati per ogni versione Delphi supportata, oltre a C++ Builder 2007 fino a C++ Builder 13. L'edizione Community è il set di binari; l'edizione All-Access include il codice sorgente completo.

Migliorie nella gestione delle connessioni

Regolazioni di keep-alive, timeout e gestione dei buffer sopra i componenti TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP di Indy.

Mantenuto insieme al resto della libreria eSeGeCe

sgcIndy condivide la cadenza degli aggiornamenti con sgcWebSockets, sgcOpenAPI, sgcSign e sgcBiometrics. Un singolo abbonamento All-Access include il sorgente di tutti e cinque i prodotti.

Adattamento onesto per ciascuna opzione

Entrambe le opzioni si basano sulla stessa base di codice Indy. La scelta dipende solitamente dall'ABI OpenSSL con cui distribuisci, dal fatto che sia richiesto TLS 1.3 e dal fatto che i binari precompilati siano importanti per il tuo sistema di build.

Usa Indy quando…

Scegli Indy quando vuoi la distribuzione originale BSD / MPL mantenuta dall'Indy Pit Crew (Remy Lebeau e l'Indy Working Group), quando costruisci direttamente sul branch master di IndySockets/Indy, quando il tuo deployment OpenSSL è la linea 1.0.x supportata nativamente da Indy, oppure quando non ti serve TLS 1.3 nelle opzioni SSL. Indy è incluso in ogni installazione recente di RAD Studio, quindi non aggiunge nulla all'impronta delle tue dipendenze.

Usa sgcIndy quando…

Scegli sgcIndy quando vuoi continuare a utilizzare il modello di componenti Indy ma hai bisogno di binding OpenSSL 1.1.x o 3.0.x, di TLS 1.3 nelle opzioni SSL, oppure di binari DCU precompilati e pacchettizzati per ogni versione di Delphi / C++ Builder da Delphi 7 fino a RAD Studio 13. L'edizione Community è gratuita; l'edizione con codice sorgente è inclusa nell'abbonamento eSeGeCe All-Access insieme a sgcWebSockets, sgcOpenAPI, sgcSign e sgcBiometrics.

Come ciascuna opzione viene concessa in licenza e distribuita

Entrambe le opzioni consentono l'uso royalty-free in applicazioni commerciali. La differenza sta nel canale di distribuzione e in ciò che viene incluso.

Indy

Doppia licenza: Indy Modified BSD License o Indy MPL License, a scelta dello sviluppatore (come da README del progetto). Il codice sorgente Pascal completo è su GitHub all'indirizzo IndySockets/Indy; scarica una release con tag oppure compila direttamente da master. Sulla pagina del progetto non ci sono binari compilati — devi compilare dal sorgente con la tua toolchain Delphi / C++ Builder / Lazarus.

sgcIndy

Due edizioni. L'edizione Community è gratuita: binari DCU e BPL compilati per ogni versione supportata di Delphi / C++ Builder, distribuzione royalty-free in applicazioni commerciali, senza registrazione. L'edizione con codice sorgente è inclusa nell'abbonamento eSeGeCe All-Access — sorgente Pascal completo più sgcWebSockets Enterprise, sgcOpenAPI, sgcSign e sgcBiometrics in un unico pacchetto.

Ogni cella nella matrice sopra rimanda a una di queste pagine di documentazione ufficiale, repository o file sorgente. Tutti gli URL sono stati verificati con HEAD al momento della scrittura.

FonteURL
sgcIndy — pagina prodottohttps://www.esegece.com/products/sgcindy/
sgcIndy — funzionalitàhttps://www.esegece.com/products/sgcindy/features/
sgcIndy — acquisto ed edizionihttps://www.esegece.com/products/sgcindy/order/
sgcIndy — downloadhttps://www.esegece.com/products/sgcindy/download/
Prezzi eSeGeCe All-Accesshttps://www.esegece.com/pricing/
Indy — homepage del progetto (indyproject.org)https://www.indyproject.org/
Indy — indice della documentazionehttps://www.indyproject.org/documentation/
Indy — repository GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — release (ultimo tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Indy — commit del branch masterhttps://github.com/IndySockets/Indy/commits/master
Indy — Lib/Protocols (elenco sorgenti)https://github.com/IndySockets/Indy/tree/master/Lib/Protocols
Indy — IdSSLOpenSSLHeaders.pas (binding OpenSSL 1.0.x)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSLHeaders.pas
Indy — IdSSLOpenSSL.pas (enum TIdSSLVersion, sslvTLSv1_2)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSL.pas
Indy — IdSASLOAuth.pas (TIdSASLXOAuth2, RFC 7628)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSASLOAuth.pas
Indy — wiki (istruzioni di upgrade, documentazione)https://github.com/IndySockets/Indy/wiki
RFC 7628 — SASL Mechanisms for OAuthhttps://datatracker.ietf.org/doc/html/rfc7628
RFC 8446 — The TLS 1.3 Protocolhttps://datatracker.ietf.org/doc/html/rfc8446
OpenSSL — sito ufficialehttps://www.openssl.org/

Prova sgcIndy

Scarica gratuitamente l'edizione Community e inserisci i binari compilati nel tuo progetto basato su Indy esistente.