sgcIndy vs Indy — czym się różnią

sgcIndy to utrzymywana, aktualizowana i unowocześniona dystrybucja biblioteki Indy, nie jest to fork ani zamiennik. Ta strona zawiera dokładną listę tego, co sgcIndy dodaje do oryginalnej pracy Indy Pit Crew (Remy Lebeau, Hadi Hariri i Indy Working Group), oraz tego, co pozostaje bez zmian.

Dwa sposoby korzystania z Indy

Jednoparagrafowe podsumowanie każdej opcji z linkiem do oficjalnej dokumentacji lub repozytorium. Szczegółowe porównanie znajdziesz w poniższej macierzy.

Indy

Indy Pit Crew — Remy Lebeau, Hadi Hariri, the Indy Working Group · Dual: Indy Modified BSD or Indy MPL

Oryginalna biblioteka Internet Direct z podwójną licencją (Modified BSD / MPL), utrzymywana przez Indy Pit Crew na GitHubie pod adresem IndySockets/Indy. Dołączana do każdej nowej instalacji RAD Studio; obejmuje TCP/UDP/surowe gniazda oraz ponad 120 klientów i serwerów protokołów wyższego poziomu (HTTP, FTP, SMTP, POP3, IMAP, NNTP, IRC i inne). Aktualna integracja OpenSSL (IdSSLOpenSSL.pas / IdSSLOpenSSLHeaders.pas) celuje w ABI OpenSSL 1.0.x; wyliczenie wersji TLS kończy się na TLSv1.2. SASL OAuth2 / XOAUTH2 zapewnia IdSASLOAuth.pas.

Official page

Porównanie funkcji obok siebie

Znacznik () oznacza, że projekt dokumentuje natywną obsługę w bieżącym źródle. Kreska () oznacza, że projekt nie zapewnia tego natywnie. Tylda (~) oznacza częściowe wsparcie / przez dodatek / niezweryfikowane — patrz sekcja Źródła, co zostało sprawdzone.

Krypto, protokoły, platformy, dystrybucja

18 wierszy
Feature Indy sgcIndy
Obsługa OpenSSL 1.0.x Powiązania celują w przestarzały ABI OpenSSL 1.0.x
Obsługa OpenSSL 1.1.x Powiązania dla API OpenSSL 1.1.x (aktualne LTS do 2023)
Obsługa OpenSSL 3.0.x Powiązania dla API opartego na dostawcach OpenSSL 3.x
TLS 1.3 TLS 1.3 dostępny do wyboru w opcjach SSL
Komponent klienta SSH (TIdSSHClient) Klient SSH 2.0 (IdSSHClient.pas) z uwierzytelnianiem kluczem i hasłem, kanałami exec / shell i przekierowaniem portów — nie dostarczany przez Indy upstream
Komponent klienta SFTP (TIdSFTPClient) Klient SFTP v3 przez SSH (IdSFTPClient.pas) do przesyłania / pobierania plików / listowania katalogów — Indy upstream dostarcza tylko FTP / FTPS, nie SFTP
XOAuth2 SMTP / IMAP / POP3 Mechanizm SASL RFC 7628 / Google XOAUTH2
IPv6 natywny Natywna obsługa gniazd IPv6
Zgodny z Delphi 7 Kompiluje się na oryginalnym łańcuchu narzędzi Delphi 7
Zgodny z RAD Studio 13 Kompiluje się na RAD Studio 13 Florence
Zgodny z Lazarus / FPC Buduje się pod Free Pascal / Lazarus
Zgodny z C++ Builder Cele VCL / FMX dla C++ Builder
Automatyczny instalator dla każdej wersji Delphi / C++ Builder Instalator jednym kliknięciem, który wykrywa każde zainstalowane IDE i rejestruje pakiety runtime + design-time, ścieżki bibliotek i ścieżki BPL
Dostępne skompilowane pliki binarne DCU Gotowe do pobrania pliki DCU / BPL
Pełny kod źródłowy w zestawie Źródła Pascal dostępne dla programisty
Bezpłatny do użytku komercyjnego Licencja zezwala na bezpłatne wdrożenie w aplikacjach komercyjnych
Aktywne utrzymanie (ostatnie 12 miesięcy) Wydanie lub otagowana aktywność w ciągu ostatnich 12 miesięcy ~
Dołączony do biblioteki eSeGeCe Dostarczany razem z sgcWebSockets / sgcOpenAPI / sgcSign / sgcBiometrics w All-Access
Udokumentowana natywna obsługa Nie dostarczana natywnie ~ Częściowe / przez dodatek / niezweryfikowane

Łatki i unowocześnienia na bazie Indy

sgcIndy zachowuje model komponentów Indy i nazwy klas (z prefiksem sgcId*), a następnie dodaje nowoczesne powiązania OpenSSL, TLS 1.3, spakowane pliki binarne i wspólny cykl wydań z resztą biblioteki eSeGeCe.

Powiązania OpenSSL 1.1.x

Nagłówki dla ABI OpenSSL 1.1.x obok przestarzałego API 1.0.x, dzięki czemu możesz linkować z libssl-1_1 / libcrypto-1_1 bez łatania oryginalnych jednostek SSL Indy.

Powiązania OpenSSL 3.0.x

Nagłówki dla architektury dostawców OpenSSL 3.x, w tym procedury wykrywania wersji (OpenSSL_version_num, OpenSSL_version) eksportowane przez bibliotekę 3.x.

TLS 1.3 w opcjach SSL

Wyliczenie TIdSSLVersion zostało rozszerzone o sslvTLSv1_3, a kontekst OpenSSL stosuje SSL_OP_NO_TLSv1_3 / usuwa go na podstawie sprawdzania w czasie wykonania przez IsOpenSSL_TLSv1_3_Available.

Pakowanie XOAuth2

Mechanizmy SASL XOAuth2 / OAuth2 Bearer są zawarte w opakowanej dystrybucji — te same klasy TIdSASLXOAuth2 i TIdSASLOAuth2Bearer, które dostarcza Indy, gotowe do użycia z dołączonymi klientami SMTP / IMAP / POP3.

Gotowa dystrybucja dla Delphi 7 do RAD Studio 13

Spakowane pliki DCU i BPL dla każdej obsługiwanej wersji Delphi, a także C++ Builder 2007 do C++ Builder 13. Edycja Community zawiera zestaw binarny; edycja All-Access zawiera pełne źródła.

Ulepszenia obsługi połączeń

Ulepszenia keep-alive, timeoutu i zarządzania buforem na bazie komponentów Indy TCP / UDP / HTTP / FTP / SMTP / POP3 / IMAP.

Utrzymywany razem z resztą biblioteki eSeGeCe

sgcIndy współdzieli cykl aktualizacji z sgcWebSockets, sgcOpenAPI, sgcSign i sgcBiometrics. Jedna subskrypcja All-Access obejmuje źródła wszystkich pięciu produktów.

Uczciwe dopasowanie dla każdej opcji

Obie opcje opierają się na tej samej bazie kodu Indy. Wybór zazwyczaj sprowadza się do tego, pod jakie ABI OpenSSL budujesz, czy wymagany jest TLS 1.3 i czy gotowe pliki binarne mają znaczenie dla twojego systemu budowania.

Użyj Indy, gdy…

Wybierz Indy, gdy chcesz oryginalnej dystrybucji BSD / MPL utrzymywanej przez Indy Pit Crew (Remy Lebeau i Indy Working Group), gdy budujesz bezpośrednio na gałęzi master IndySockets/Indy, gdy twoje wdrożenie OpenSSL to linia 1.0.x, na którą Indy celuje domyślnie, lub gdy nie potrzebujesz TLS 1.3 w opcjach SSL. Indy jest dołączany do każdej nowej instalacji RAD Studio, więc nic nie dodaje do twojego śladu zależności.

Użyj sgcIndy, gdy…

Wybierz sgcIndy, gdy chcesz nadal korzystać z modelu komponentów Indy, ale potrzebujesz powiązań OpenSSL 1.1.x lub 3.0.x, TLS 1.3 w opcjach SSL lub gotowych plików binarnych DCU spakowanych dla każdej wersji Delphi / C++ Builder od Delphi 7 do RAD Studio 13. Edycja Community jest bezpłatna; edycja z kodem źródłowym jest zawarta w subskrypcji eSeGeCe All-Access razem z sgcWebSockets, sgcOpenAPI, sgcSign i sgcBiometrics.

Jak każda opcja jest licencjonowana i dystrybuowana

Obie opcje zezwalają na bezpłatne użycie w aplikacjach komercyjnych. Różnica leży w kanale dystrybucji i tym, co jest dołączone.

Indy

Podwójna licencja: Indy Modified BSD License lub Indy MPL License, do wyboru przez programistę (zgodnie z README projektu). Pełne źródła Pascal są na GitHubie pod adresem IndySockets/Indy; pobierz otagowane wydanie lub buduj bezpośrednio z mastera. Na stronie projektu nie ma skompilowanych plików binarnych — budujesz ze źródeł dla swojego łańcucha narzędzi Delphi / C++ Builder / Lazarus.

sgcIndy

Dwie edycje. Edycja Community jest bezpłatna: skompilowane pliki DCU i BPL dla każdej obsługiwanej wersji Delphi / C++ Builder, bezpłatne wdrożenie w aplikacjach komercyjnych, bez rejestracji. Edycja z kodem źródłowym jest zawarta w subskrypcji eSeGeCe All-Access — pełne źródła Pascal plus sgcWebSockets Enterprise, sgcOpenAPI, sgcSign i sgcBiometrics w jednym pakiecie.

Każde twierdzenie z odnośnikiem

Każda komórka macierzy powyżej odwołuje się do jednej z oficjalnych stron dokumentacji, repozytoriów lub plików źródłowych. Wszystkie adresy URL zostały sprawdzone HEAD w chwili pisania.

ŹródłoURL
sgcIndy — strona produktuhttps://www.esegece.com/products/sgcindy/
sgcIndy — funkcjehttps://www.esegece.com/products/sgcindy/features/
sgcIndy — zamówienie i edycjehttps://www.esegece.com/products/sgcindy/order/
sgcIndy — pobieraniehttps://www.esegece.com/products/sgcindy/download/
Cennik eSeGeCe All-Accesshttps://www.esegece.com/pricing/
Indy — strona projektu (indyproject.org)https://www.indyproject.org/
Indy — indeks dokumentacjihttps://www.indyproject.org/documentation/
Indy — repozytorium GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — wydania (ostatni tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Indy — commity gałęzi masterhttps://github.com/IndySockets/Indy/commits/master
Indy — Lib/Protocols (lista źródeł)https://github.com/IndySockets/Indy/tree/master/Lib/Protocols
Indy — IdSSLOpenSSLHeaders.pas (powiązania OpenSSL 1.0.x)https://github.com/IndySockets/Indy/blob/master/Lib/Protocols/IdSSLOpenSSLHeaders.pas
Indy — IdSSLOpenSSL.pas (wyliczenie 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 (instrukcje aktualizacji, dokumentacja)https://github.com/IndySockets/Indy/wiki
RFC 7628 — mechanizmy SASL dla OAuthhttps://datatracker.ietf.org/doc/html/rfc7628
RFC 8446 — protokół TLS 1.3https://datatracker.ietf.org/doc/html/rfc8446
OpenSSL — strona projektuhttps://www.openssl.org/

Wypróbuj sgcIndy

Pobierz bezpłatną edycję Community i wstaw skompilowane pliki binarne do swojego istniejącego projektu opartego na Indy.