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.
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
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.
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+512Sistema 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+405Dati e formati
Serializzazione, compressione, codifica, configurazione e storage transazionale. Tutto viene sempre compilato, senza opzioni da impostare.
serializationcompressionencodingconfigstorage03Testo e lingua
Unicode 18, espressioni regolari in tempo lineare e internazionalizzazione con i dati CLDR. Nessuno dei tre alloca nel percorso principale.
textregexi18n04Networking
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.
networktlshttprpc06Sicurezza 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.
cryptographybundleguardlicensingupdatercrashreport03Strumenti per sviluppatori
Il framework di test e l'infrastruttura di misura con cui viene verificata Ethereal stessa, più la libreria per il terminale.
testingbenchcli05Matematica, 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.
mathecsprofilerstatstelemetry06Machine 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::NeuralModelGuardVectorIndex01Interfaccia
FormaUI, un futuro modulo di interfaccia utente, in sviluppo per l'edizione Full.
FormaUIPensata 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.
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.
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.
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.
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
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.
| Cosa | Confrontato con | Risultato |
|---|---|---|
| Ed25519 | OpenSSL, riferimento Python a interi esatti, RFC 8032 | 11,848 · 0 discordanze |
| SHA-384/512, HMAC, HKDF, AES-GCM | OpenSSL 3.5, Python cryptography 46 | 127,502 · 0 discordanze |
| X25519, P-256, P-384, RSA | stessi oracoli, RFC 7748 e 6979 | 59,001 · 0 discordanze |
| TLS 1.3 | Trace RFC 8448, openssl s_server e s_client, Python ssl | 31 · 0 errori |
| Compressione | liblz4, zlib, libxxhash | 79,864 · 0 discordanze |
| Unicode 18 | file di conformità ufficiali | 100% |
274 test sotto ASan e UBSan, 274 su 274 sotto TSan, nessuna segnalazione.
100 milioni di input di compressione, 85,000 casi TLS e 100,000 mutazioni di certificati.
Un guasto iniettato a ogni operazione su disco di un aggiornamento: nessuna installazione lasciata a metà.
I moduli di machine learning con stato hanno girato un giorno intero con zero errori e memoria stabile.
Il tuo prossimo progetto parte
da fondamenta già finite.
Valuta gratis l'edizione Standard completa per 30 giorni. Senza registrazione, senza carta di credito.