v0.1 C++20 · C17 · zéro dépendance

Arrêtez de recoller des bibliothèques.
Commencez à livrer.

Ethereal est une bibliothèque C++20 de 57+ modules pour le logiciel système : mémoire, concurrence, réseau avec son propre TLS 1.3, cryptographie, stockage, Unicode 18, télémétrie et machine learning. Zéro dépendance tierce. Des chiffres mesurés, des limites publiées.

Windows x64 + Linux x64, vérifiés Licence perpétuelle Couche C pour FFI
57+modules dans une bibliothèque6 pour le machine learning
0dépendance tierceseulement les bibliothèques de l'OS
280+tests réussisMSVC et GCC, Release
0avertissement du compilateur/W4 · -Wall -Wextra
127,502vérifications croisées crypto symétriquevs OpenSSL 3.5 · 0 divergence
31cas d'interopérabilité TLS 1.3vs OpenSSL et Python · 0 échec
la taxe de la colle

Chaque projet C++ paie pour la colle. Ethereal la supprime.

Un logger d'un côté, une pile TLS de l'autre, une bibliothèque de compression, une bibliothèque Unicode, un parseur de configuration, un stockage clé-valeur. Chacun avec ses propres erreurs, son propre allocateur et son propre calendrier de versions. La colle entre eux, c'est du code que personne n'avait envie d'écrire.

Une pile typique 10 bibliothèques

  • Dix conventions d'erreur et dix modèles d'allocation
  • Dix cycles de versions et flux de sécurité à suivre
  • Des scripts de build qui cassent au prochain compilateur
  • Aucune idée réelle du coût de chaque appel

Ethereal 1 bibliothèque

  • Une seule convention d'erreur dans tous les modules
  • Aucun thread de travail ni singleton qui démarre seul
  • Les modules que vous n'appelez pas n'entrent jamais dans le binaire
  • Chiffres et limites publiés pour chaque module
la bibliothèque

57+ modules. Une seule convention.

Utilisez-les ensemble ou un par un. Le SDK est une bibliothèque statique, donc votre binaire ne contient que les modules que votre code appelle.

13

Fondations

La base sur laquelle reposent tous les autres modules : plateforme, assertions, diagnostics, journalisation, mémoire, structures à capacité fixe, bits, chaînes, aléatoire, identifiants, description de types et machines à états. Tout cela compile toujours.

platformversionassertdiagnosticslogmemorycontainersbits+5
12

Système et concurrence

Système d'exploitation, fichiers, temps, processus, plugins, threads, fibres et politiques qui protègent un appel susceptible d'échouer. Aucun de ces modules ne crée de thread que l'appelant n'a pas demandé.

systemfiletimeprocesspluginconcurrencymutexevent+4
05

Données et formats

Sérialisation, compression, encodage, configuration et stockage transactionnel. Tout cela compile toujours, sans option à régler.

serializationcompressionencodingconfigstorage
03

Texte et langue

Unicode 18, expressions régulières en temps linéaire et internationalisation avec les données CLDR. Aucun des trois n'alloue sur son chemin principal.

textregexi18n
04

Réseau

Sockets et boucle d'événements, un TLS 1.3 maison avec X.509, un client HTTPS par-dessus et du RPC binaire. Rien de tout cela n'utilise OpenSSL ni aucune autre bibliothèque TLS.

networktlshttprpc
06

Sécurité et produit

Une cryptographie maison, les licences d'Ethereal elle-même et quatre modules optionnels pour votre propre produit : protection, licences, mises à jour et rapports de plantage. Désactivés, ils laissent le build identique.

cryptographybundleguardlicensingupdatercrashreport
03

Outils de développement

Le framework de test et le banc de mesure avec lesquels Ethereal elle-même est vérifiée, plus la bibliothèque de terminal.

testingbenchcli
05

Maths, jeu et observabilité

Calcul SIMD par lots, un ECS à archétypes et de quoi mesurer un processus : profileur, statistiques système et télémétrie.

mathecsprofilerstatstelemetry
06

Machine learning

Six modules pour l'inférence classique, la protection de modèles et la recherche vectorielle, tous désactivés par défaut, sans dépendance et sans Python à l'exécution.

Ml::TreesMl::FeaturesMl::AnomalyMl::NeuralModelGuardVectorIndex
01

Interface

FormaUI, un futur module d'interface utilisateur, en développement pour l'édition Full.

FormaUI

Parcourir tous les modules, avec leurs chiffres et leurs limites

principes

Conçue pour les équipes qui doivent savoir ce que coûte chaque appel.

Zéro dépendance

Aucune bibliothèque tierce, seulement celles du système d'exploitation. SHA-2, ChaCha20-Poly1305, AES-GCM, Ed25519, X25519, P-256 et TLS 1.3 sont écrits en interne. Pas d'OpenSSL, pas de libsodium.

Mesurée et documentée

La documentation du module donne ses chiffres, la machine et le compilateur dont ils proviennent, et les objectifs qu'il n'atteint pas. Le changelog liste chaque changement cassant, avec un guide de migration.

SIMD, mêmes bits

Chemins SSE2 à SSE4.2, AES-NI et AVX2 choisis à l'exécution dans l'encodage, le calcul par lots, les regex, les sommes de contrôle, les chiffrements et la recherche vectorielle. Là où c'est promis, SIMD et scalaire donnent des bits identiques.

C et C++

L'API principale est en C++20. Quarante-neuf modules ont aussi une couche C avec des handles opaques, testée en C11 et C17, prête pour Rust, C#, Python ou tout langage qui parle C.

Opt-in par conception

Rien ne s'empare de main, et aucun thread de travail ne démarre sans que vous le demandiez. Un module que vous n'appelez jamais n'atteint jamais le binaire.

Échoue bruyamment

Les formats sur disque portent une version dans leur en-tête. Un fichier plus récent que le lecteur est refusé au lieu d'être lu à l'aveugle, et une lecture corrompue échoue au lieu de renvoyer n'importe quoi.

performances

La vitesse, c'est un chiffre. Voici les nôtres.

Builds Release sur le même i7-6700, MSVC 19.51 sous Windows et GCC 15.2 sous WSL2. Chaque chiffre provient du README d'un module, avec ses conditions.

CRC32Ccompression24.26 GB/sobjectif 20
Encodage hexencoding · AVX219.32 GB/sobjectif 12
Recherche littéraleregex · 1 MB, en cache14.1 GB/sobjectif 10
Décodage Base64encoding · AVX213.93 GB/sobjectif 6
Encodage Base64encoding · AVX212.44 GB/sobjectif 8
Décompression LZ4compression3.24 GB/sWindows x64

Windows x64, MSVC 19.51, Release, blocs de 64 KiB à 1 MB. Les chiffres Linux sont sur la page performances.

351×

Regex vs std::regex. Temps linéaire, sans backtracking. 10× à 351× plus rapide que libstdc++ sur six motifs sur sept. (a+)+b sur 100,000 lettres : moins de 1 ms.

0

Corruptions sur 5,052 plantages. Le stockage transactionnel a survécu à des coupures de courant simulées en 1,263 points sur 4 disques. Parcours séquentiel : jusqu'à 23 M entrées/s sous Linux.

3.52 ns

Une lecture de configuration par handle. Zéro allocation sur dix mille lectures, et aucune lecture déchirée sur environ 50 millions pendant des rechargements à chaud.

Nous publions aussi les échecs. La compression LZ4 par blocs tourne entre 365 et 380 MB/s pour un objectif de 600 MB/s. Le README le dit, avec la machine et le compilateur. Voir les 24

vérification

Une suite qui passe ne prouve pas grand-chose. Alors nous essayons de la casser.

Des défauts sont introduits exprès et les tests doivent les détecter. Partout où une référence externe existe, Ethereal est vérifiée face à elle, en volume.

QuoiVérifié face àRésultat
Ed25519OpenSSL, référence Python en entiers exacts, RFC 803211,848 · 0 écart
SHA-384/512, HMAC, HKDF, AES-GCMOpenSSL 3.5, Python cryptography 46127,502 · 0 écart
X25519, P-256, P-384, RSAmêmes oracles, RFC 7748 et 697959,001 · 0 écart
TLS 1.3Trace RFC 8448, openssl s_server et s_client, Python ssl31 · 0 échec
Compressionliblz4, zlib, libxxhash79,864 · 0 écart
Unicode 18fichiers de conformité officiels100%
Sanitizers au propre

274 tests sous ASan et UBSan, 274 sur 274 sous TSan, aucun rapport.

Fuzzing en volume

100 millions d'entrées de compression, 85,000 cas TLS et 100,000 mutations de certificats.

Coupures de courant

Une panne injectée à chaque opération disque d'une mise à jour : aucune installation laissée à moitié écrite.

24 heures d'affilée

Les modules de machine learning à état ont tourné une journée entière sans aucune erreur et avec une mémoire stable.

licences

Achetez une fois. Gardez-la pour toujours.

  • Tous les modules, prix selon la taille de l'équipe, projets illimités
  • Usage commercial inclus, licence perpétuelle
  • 1 ou 2 ans de mises à jour, vous gardez ensuite ce que vous avez obtenu
  • Vérifiée hors ligne, sans verrouillage machine, sans appel au serveur
perpétuelle, à partir de
$349 paiement unique
prête quand vous l'êtes

Votre prochain projet démarre
sur des fondations achevées.

Évaluez l'édition Standard complète gratuitement pendant 30 jours. Sans inscription, sans carte bancaire.

En savoir plus sur Typename Studios et ses produits