Démarrer
Le SDK est livré déjà compilé pour Windows x64 et Linux x64. Décompressez-le, liez-le à votre projet et lancez un premier programme.
01Prérequis
| Élément | Minimum | Remarques |
|---|---|---|
| Compilateur C++ | C++20 | Windows : MSVC 19.51 (Visual Studio 2026) ou plus récent, car une bibliothèque statique ne peut pas être liée par un toolset plus ancien que celui qui l'a compilée. Linux : GCC 15 ou plus récent. |
| Runtime MSVC | /MD | Les bibliothèques Windows utilisent le runtime dynamique, /MD en Release et /MDd en Debug, le choix par défaut de CMake. Votre projet doit utiliser le même. |
| Plateforme | x64 | Windows x64, et Linux x64 avec glibc 2.28 ou plus récente (compilé sur Rocky Linux 8). macOS, ARM64, Clang et x86 32 bits n'ont pas encore de SDK. |
| CMake | 3.21 | Pour utiliser find_package. Sous Linux, pkg-config fonctionne aussi. |
| Compilateur C | C11 | Uniquement pour appeler la couche C depuis du C. Elle est testée en C11 et C17. |
| Bibliothèques système | OS uniquement | Windows : ws2_32, advapi32, psapi, user32, winmm, wintrust, crypt32, iphlpapi, Synchronization, bcrypt. Linux : pthread, dl, m, rt. find_package et pkg-config les ajoutent pour vous. |
02Obtenir le SDK
Le SDK est une archive .zip par plateforme, déjà compilée. Il n'y a rien à compiler ni à installer : vous la décompressez et vous y faites pointer votre projet. La même archive fait tourner l'évaluation et, une fois que vous avez une clé de série, l'édition sous licence.
Évaluation
L'édition Standard, tous les modules, pendant 30 jours à partir de la première utilisation sur chaque machine. Sans inscription, sans clé de série.
- Téléchargez l'archive du SDK.
- Décompressez-le et liez-le à votre projet (étape 04).
- Appelez
UnlockBundleavec une clé de série vide (étape 05).
Sous licence
Après l'achat, l'e-mail de confirmation contient tout.
- L'archive du SDK pour votre licence.
- Une clé de série temporaire, valable 30 jours.
- La clé de série permanente, envoyée automatiquement après ces 30 jours.
03Contenu du SDK
Les headers, la bibliothèque statique en Release et en Debug (celle de Debug porte le suffixe d), les fichiers qui font fonctionner find_package et les outils en ligne de commande. Tous les modules y sont compilés, y compris les modules spécialisés (voir modules inclus).
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 bibliothèque a aussi besoin de quelques petites bibliothèques auxiliaires et de définitions de compilation. find_package et pkg-config les ajoutent, donc utilisez l'un des deux au lieu de lister les fichiers à la main.
04Lier votre projet
Faites pointer CMAKE_PREFIX_PATH vers le dossier décompressé du SDK et demandez les modules que vous utilisez. Les composants ne vérifient que les noms : il n'y a qu'une seule bibliothèque, Ethereal::Ethereal, et CMake choisit le fichier Release ou Debug pour chaque configuration.
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)
05Débloquer et lancer
Appelez Bundle::UnlockBundle une fois par application, avant d'utiliser le moindre module, avec votre clé de série. Pendant l'évaluation, passez une chaîne vide. Une clé refusée renvoie un statut qui dit pourquoi : signature, format, produit, validité ou clé manquante. La vérification se fait uniquement hors ligne, avec une clé publique compilée dans la bibliothèque. Rien n'est envoyé sur le réseau.
#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 inclut toute la bibliothèque. Chaque header public compile aussi seul, vous pouvez donc n'inclure que ce que vous utilisez, comme <ethereal/cpp/regex/regex_inc.hpp>.
06Modules inclus
Tous les modules sont déjà compilés dans le SDK, y compris les modules spécialisés ci-dessous. C'est une bibliothèque statique, donc l'éditeur de liens ne prend que le code que votre programme appelle : un module que vous n'utilisez jamais n'atteint pas votre binaire.
| Module | Dans le SDK | Ce qu'elle ajoute |
|---|---|---|
| HTTP | inclus | Client HTTPS sur le TLS 1.3 propre à la bibliothèque |
| Telemetry | inclus | Métriques, traces W3C, export Prometheus, OTLP et StatsD |
| Machine learning | inclus | Les six modules de machine learning |
| Licensing | inclus | Kit de licences Ed25519 pour votre propre produit |
| Updater | inclus | Canal de mises à jour signé |
| CrashReport | inclus | Rapports de plantage et leur envoi |
| Guard | inclus | Primitives anti-tamper, au complet |
| Text | inclus | Unicode 18 : normalisation, segmentation, collation, bidi, IDNA |
| Testing · Bench | bibliothèques séparées | Le framework de test et le banc de mesure |