Inizia
L'SDK è già compilato per Windows x64 e Linux x64. Decomprimilo, collegalo al tuo progetto ed esegui un primo programma.
01Requisiti
| Elemento | Minimo | Note |
|---|---|---|
| Compilatore C++ | C++20 | Windows: MSVC 19.51 (Visual Studio 2026) o successivo, perché una libreria statica non può essere collegata da un toolset più vecchio di quello che l'ha compilata. Linux: GCC 15 o successivo. |
| Runtime MSVC | /MD | Le librerie Windows usano il runtime dinamico, /MD in Release e /MDd in Debug, l'impostazione predefinita di CMake. Il tuo progetto deve usare lo stesso. |
| Piattaforma | x64 | Windows x64, e Linux x64 con glibc 2.28 o successiva (compilato su Rocky Linux 8). macOS, ARM64, Clang e x86 a 32 bit non hanno ancora un SDK. |
| CMake | 3.21 | Per usare find_package. Su Linux funziona anche pkg-config. |
| Compilatore C | C11 | Solo per chiamare il livello C da C. È testato come C11 e C17. |
| Librerie di sistema | Solo sistema operativo | Windows: ws2_32, advapi32, psapi, user32, winmm, wintrust, crypt32, iphlpapi, Synchronization, bcrypt. Linux: pthread, dl, m, rt. find_package e pkg-config le aggiungono per te. |
02Ottieni l'SDK
L'SDK è un archivio .zip per piattaforma, già compilato. Non c'è niente da compilare né da installare: lo decomprimi e ci punti il tuo progetto. Lo stesso archivio esegue la valutazione e, una volta ottenuto un seriale, l'edizione con licenza.
Valutazione
L'edizione Standard, tutti i moduli, per 30 giorni dal primo utilizzo su ogni macchina. Senza registrazione, senza seriale.
- Scarica l'archivio dell'SDK.
- Decomprimilo e collegalo al tuo progetto (passo 04).
- Chiama
UnlockBundlecon un seriale vuoto (passo 05).
Con licenza
Dopo l'acquisto, l'email di conferma porta tutto il necessario.
- L'archivio dell'SDK per la tua licenza.
- Un seriale temporaneo, valido 30 giorni.
- Il seriale permanente, inviato automaticamente dopo quei 30 giorni.
03Cosa contiene l'SDK
Gli header, la libreria statica in Release e Debug (quella Debug ha il suffisso d), i file che fanno funzionare find_package e gli strumenti da riga di comando. Ogni modulo è già compilato, inclusi quelli specialistici (vedi moduli inclusi).
ethereal-win-x64/ include/ethereal/ # C++ and C headers lib/Ethereal.lib # Release lib/Ethereald.lib # Debug lib/cmake/Ethereal/ # find_package( Ethereal ) bin/ # etl-bench, etl-i18n, etl-trees, etl-neural, etl-modelguard, etl-update
ethereal-linux-x64/ include/ethereal/ # C++ and C headers lib64/libEthereal.a # Release lib64/libEthereald.a # Debug lib64/cmake/Ethereal/ # find_package( Ethereal ) lib64/pkgconfig/ # ethereal.pc bin/ # etl-bench, etl-i18n, etl-trees, etl-neural, etl-modelguard, etl-update
La libreria richiede anche alcune piccole librerie di supporto e definizioni di compilazione. find_package e pkg-config le aggiungono da sé, quindi usa uno dei due invece di elencare i file a mano.
04Collega il tuo progetto
Imposta CMAKE_PREFIX_PATH sulla cartella decompressa dell'SDK e richiedi i moduli che usi. I componenti controllano solo i nomi: c'è una sola libreria, Ethereal::Ethereal, e CMake sceglie il file Release o Debug per ogni configurazione.
cmake_minimum_required( VERSION 3.21 ) project( app CXX ) find_package( Ethereal 0.1 REQUIRED COMPONENTS Regex I18n ) add_executable( app main.cpp ) target_link_libraries( app PRIVATE Ethereal::Ethereal )
# Windows cmake -S . -B build -A x64 -DCMAKE_PREFIX_PATH=C:\sdk\ethereal-win-x64 cmake --build build --config Release # Linux cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/ethereal-linux-x64 cmake --build build
# Linux. The ethereal.pc file is relocatable.
export PKG_CONFIG_PATH=/opt/ethereal-linux-x64/lib64/pkgconfig
g++ -std=c++20 main.cpp $(pkg-config --cflags --libs ethereal)
05Sblocca ed esegui
Chiama Bundle::UnlockBundle una volta per applicazione, prima di usare qualsiasi modulo, con il tuo seriale. Durante la valutazione, passa una stringa vuota. Una chiave rifiutata restituisce uno stato che dice perché: firma, formato, prodotto, validità o chiave mancante. La verifica avviene solo offline, con una chiave pubblica compilata nella libreria. Nulla viene inviato in rete.
#include <ethereal/cpp/pch/pch_ethereal.h> int main( int argc, char ** argv ) { using namespace Ethereal; // once per application, before anything else const char * pSerial = ( argc > 1 ) ? argv[ 1 ] : ""; const Bundle::EBundleUnlockStatus eStatus = Bundle::UnlockBundle( pSerial ); if( eStatus != Bundle::eOk ) { std::printf( "license refused, code %d\n", static_cast< int >( eStatus ) ); return 1; } std::string sDigest; Crypto::SHA256::GetAs_String( "ethereal", sDigest ); const UID::CUuid Id = UID::CUuid::Generate(); std::printf( "%s\n%s\n", sDigest.c_str(), Id.ToString().c_str() ); }
pch_ethereal.h include l'intera libreria. Ogni header pubblico compila anche da solo, quindi puoi includere solo ciò che usi, ad esempio <ethereal/cpp/regex/regex_inc.hpp>.
06Moduli inclusi
Ogni modulo è già compilato nell'SDK, inclusi quelli specialistici qui sotto. È una libreria statica, quindi il linker prende solo il codice che il tuo programma chiama: un modulo che non usi mai non arriva nel tuo binario.
| Modulo | Nell'SDK | Cosa aggiunge |
|---|---|---|
| HTTP | incluso | Client HTTPS sopra il TLS 1.3 della libreria |
| Telemetry | incluso | Metriche, trace W3C, esportazione Prometheus, OTLP e StatsD |
| Machine learning | incluso | I sei moduli di machine learning |
| Licensing | incluso | Kit di licenze Ed25519 per il tuo prodotto |
| Updater | incluso | Canale di aggiornamenti firmato |
| CrashReport | incluso | Crash report e loro invio |
| Guard | incluso | Primitive anti-manomissione, ogni componente |
| Text | incluso | Unicode 18: normalizzazione, segmentazione, collation, bidi, IDNA |
| Testing · Bench | librerie separate | Il framework di test e l'infrastruttura di misura |