v0.1 C++20 · C17 · zero dipendenze

Basta incollare librerie.
Inizia a rilasciare.

Ethereal è una sola libreria C++20 con 57+ moduli per il software di sistema: memoria, concorrenza, networking con il proprio TLS 1.3, crittografia, storage, Unicode 18, telemetria e machine learning. Zero dipendenze di terze parti. Numeri misurati, limiti pubblicati.

Windows x64 + Linux x64, verificati Licenza perpetua Layer C per FFI
57+moduli in una sola libreria6 per il machine learning
0dipendenze di terze partisolo le librerie del sistema operativo
280+test superatiMSVC e GCC, Release
0warning del compilatore/W4 · -Wall -Wextra
127,502controlli incrociati di crittografia simmetricavs OpenSSL 3.5 · 0 divergenze
31casi di interoperabilità TLS 1.3vs OpenSSL e Python · 0 errori
la tassa della colla

Ogni progetto C++ paga la colla. Ethereal la elimina.

Un logger da qui, uno stack TLS da lì, una libreria di compressione, una libreria Unicode, un parser di configurazione, un key-value store. Ognuno con i suoi errori, il suo allocatore e il suo calendario di rilasci. La colla tra loro è codice che nessuno voleva scrivere.

Uno stack tipico 10 librerie

  • Dieci convenzioni di errore e dieci modelli di allocazione
  • Dieci cicli di rilascio e feed di sicurezza da seguire
  • Script di build che si rompono al prossimo compilatore
  • Nessuna idea reale di quanto costi ogni chiamata

Ethereal 1 libreria

  • Una sola convenzione di errori in tutti i moduli
  • Nessun worker thread né singleton che si avvia da solo
  • I moduli che non chiami non entrano mai nel binario
  • Numeri e limiti pubblicati per ogni modulo
la libreria

57+ moduli. Una sola convenzione.

Usali insieme o uno alla volta. L'SDK è una libreria statica, così il binario contiene solo i moduli che il tuo codice chiama.

13

Fondamenta

La base su cui poggia ogni altro modulo: piattaforma, asserzioni, diagnostica, logging, memoria, strutture a capacità fissa, bit, stringhe, casualità, identificatori, descrizione dei tipi e macchine a stati. Tutto viene sempre compilato.

platformversionassertdiagnosticslogmemorycontainersbits+5
12

Sistema e concorrenza

Sistema operativo, file, tempo, processi, plugin, thread, fiber e le policy che proteggono una chiamata che può fallire. Nessuno di questi moduli crea un thread che il chiamante non ha chiesto.

systemfiletimeprocesspluginconcurrencymutexevent+4
05

Dati e formati

Serializzazione, compressione, codifica, configurazione e storage transazionale. Tutto viene sempre compilato, senza opzioni da impostare.

serializationcompressionencodingconfigstorage
03

Testo e lingua

Unicode 18, espressioni regolari in tempo lineare e internazionalizzazione con i dati CLDR. Nessuno dei tre alloca nel percorso principale.

textregexi18n
04

Networking

Socket ed event loop, un TLS 1.3 scritto in casa con X.509, un client HTTPS basato su di esso e RPC binario. Niente di tutto questo usa OpenSSL o altre librerie TLS.

networktlshttprpc
06

Sicurezza e prodotto

Crittografia scritta in casa, le licenze di Ethereal stessa e quattro moduli opzionali per il tuo prodotto: protezione, licenze, aggiornamenti e crash report. Disattivati, lasciano la build identica.

cryptographybundleguardlicensingupdatercrashreport
03

Strumenti per sviluppatori

Il framework di test e l'infrastruttura di misura con cui viene verificata Ethereal stessa, più la libreria per il terminale.

testingbenchcli
05

Matematica, giochi e osservabilità

Matematica SIMD a batch, un ECS basato su archetipi e gli strumenti per misurare un processo: profiler, statistiche di sistema e telemetria.

mathecsprofilerstatstelemetry
06

Machine learning

Sei moduli per inferenza classica, protezione dei modelli e ricerca vettoriale, tutti disattivati per impostazione predefinita, senza dipendenze e senza Python a runtime.

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

Interfaccia

FormaUI, un futuro modulo di interfaccia utente, in sviluppo per l'edizione Full.

FormaUI

Sfoglia tutti i moduli, con i loro numeri e i loro limiti

principi

Pensata per i team che devono sapere quanto costa ogni chiamata.

Zero dipendenze

Nessuna libreria di terze parti, solo quelle del sistema operativo. SHA-2, ChaCha20-Poly1305, AES-GCM, Ed25519, X25519, P-256 e TLS 1.3 sono scritti in casa. Niente OpenSSL, niente libsodium.

Misurata e documentata

La documentazione del modulo riporta i suoi numeri, la macchina e il compilatore da cui provengono e gli obiettivi che non raggiunge. Il changelog elenca ogni modifica incompatibile, con una guida alla migrazione.

SIMD, stessi bit

Percorsi da SSE2 a SSE4.2, AES-NI e AVX2 scelti a runtime in codifica, matematica a batch, regex, checksum, cifrari e ricerca vettoriale. Dove è promesso, SIMD e scalare producono bit identici.

C e C++

L'API principale è C++20. Quarantanove moduli hanno anche un layer C con handle opachi, testato come C11 e C17, pronto per Rust, C#, Python o qualsiasi linguaggio che parli C.

Opt-in per scelta

Niente si impossessa di main, e nessun worker thread si avvia se non lo chiedi tu. Un modulo che non chiami mai non arriva mai nel binario.

Fallisce in modo evidente

I formati su disco portano una versione nell'header. Un file più recente del lettore viene rifiutato invece di essere letto alla cieca, e una lettura corrotta fallisce invece di restituire dati spazzatura.

prestazioni

Veloce è un numero. Ecco i nostri.

Build Release sullo stesso i7-6700, MSVC 19.51 su Windows e GCC 15.2 sotto WSL2. Ogni valore viene dal README di un modulo, con le sue condizioni.

CRC32Ccompression24.26 GB/sobiettivo 20
Codifica hexencoding · AVX219.32 GB/sobiettivo 12
Ricerca letteraleregex · 1 MB, in cache14.1 GB/sobiettivo 10
Decodifica Base64encoding · AVX213.93 GB/sobiettivo 6
Codifica Base64encoding · AVX212.44 GB/sobiettivo 8
Decompressione LZ4compression3.24 GB/sWindows x64

Windows x64, MSVC 19.51, Release, blocchi da 64 KiB a 1 MB. I numeri Linux sono nella pagina delle prestazioni.

351×

Regex contro std::regex. Tempo lineare, nessun backtracking. Da 10× a 351× più veloce di libstdc++ su sei pattern su sette. (a+)+b su 100,000 lettere: meno di 1 ms.

0

Corruzioni in 5,052 crash. Lo storage transazionale è sopravvissuto a interruzioni di corrente simulate in 1,263 punti su 4 dischi. Scansione sequenziale: fino a 23 M voci/s su Linux.

3.52 ns

Una lettura di configurazione tramite handle. Zero allocazioni in diecimila letture, e nessuna lettura inconsistente su circa 50 milioni durante gli hot reload.

Pubblichiamo anche gli obiettivi mancati. La compressione LZ4 a blocchi va da 365 a 380 MB/s contro un obiettivo di 600 MB/s. Lo dice il README, con la macchina e il compilatore. Vedili tutti e 24

verifica

Una suite che passa dimostra poco. Per questo proviamo a romperla.

I difetti vengono inseriti di proposito e i test devono scovarli. Ovunque esista un riferimento esterno, Ethereal viene confrontata con esso, su larga scala.

CosaConfrontato conRisultato
Ed25519OpenSSL, riferimento Python a interi esatti, RFC 803211,848 · 0 discordanze
SHA-384/512, HMAC, HKDF, AES-GCMOpenSSL 3.5, Python cryptography 46127,502 · 0 discordanze
X25519, P-256, P-384, RSAstessi oracoli, RFC 7748 e 697959,001 · 0 discordanze
TLS 1.3Trace RFC 8448, openssl s_server e s_client, Python ssl31 · 0 errori
Compressioneliblz4, zlib, libxxhash79,864 · 0 discordanze
Unicode 18file di conformità ufficiali100%
Sanitizer puliti

274 test sotto ASan e UBSan, 274 su 274 sotto TSan, nessuna segnalazione.

Fuzzing su larga scala

100 milioni di input di compressione, 85,000 casi TLS e 100,000 mutazioni di certificati.

Interruzioni di corrente

Un guasto iniettato a ogni operazione su disco di un aggiornamento: nessuna installazione lasciata a metà.

24 ore di fila

I moduli di machine learning con stato hanno girato un giorno intero con zero errori e memoria stabile.

licenze

La compri una volta. È tua per sempre.

  • Tutti i moduli, prezzo in base alla dimensione del team, progetti illimitati
  • Uso commerciale incluso, licenza perpetua
  • 1 o 2 anni di aggiornamenti, poi tieni ciò che hai ricevuto
  • Verificata offline, nessun blocco alla macchina, nessuna connessione all'esterno
perpetua, da
$349 una tantum
pronti quando lo sei tu

Il tuo prossimo progetto parte
da fondamenta già finite.

Valuta gratis l'edizione Standard completa per 30 giorni. Senza registrazione, senza carta di credito.

Scopri di più su Typename Studios e i suoi prodotti