Deja de pegar bibliotecas.
Empieza a entregar.
Ethereal es una sola biblioteca C++20 con 57+ módulos para software de sistemas: memoria, concurrencia, redes con TLS 1.3 propio, criptografía, almacenamiento, Unicode 18, telemetría y machine learning. Cero dependencias de terceros. Cifras medidas, límites publicados.
Todo proyecto C++ paga el pegamento. Ethereal lo elimina.
Un logger de aquí, una pila TLS de allá, una biblioteca de compresión, otra de Unicode, un parser de configuración, un almacén clave-valor. Cada uno con sus propios errores, su propio asignador y su propio calendario de versiones. El pegamento entre ellos es código que nadie quería escribir.
Una pila típica 10 bibliotecas
- Diez convenciones de error y diez modelos de asignación
- Diez ciclos de versiones y avisos de seguridad que seguir
- Scripts de build que se rompen con el próximo compilador
- Ninguna idea real de lo que cuesta cada llamada
Ethereal 1 biblioteca
- Una sola convención de errores en todos los módulos
- Ningún hilo de trabajo ni singleton que arranque solo
- Los módulos que no se llaman nunca entran en el binario
- Cifras y límites publicados para cada módulo
57+ módulos. Una convención.
Juntos o de uno en uno. El SDK es una biblioteca estática, así que el binario solo lleva los módulos que llama el código.
Base
La base sobre la que se construyen todos los demás módulos: plataforma, aserciones, diagnóstico, logging, memoria, estructuras de capacidad fija, bits, cadenas, aleatoriedad, identificadores, descripción de tipos y máquinas de estados. Todo se compila siempre.
platformversionassertdiagnosticslogmemorycontainersbits+512Sistema y concurrencia
Sistema operativo, archivos, tiempo, procesos, plugins, hilos, fibras y las políticas que protegen una llamada que puede fallar. Ninguno de estos módulos crea un hilo que quien llama no haya pedido.
systemfiletimeprocesspluginconcurrencymutexevent+405Datos y formatos
Serialización, compresión, codificación, configuración y almacenamiento transaccional. Todo se compila siempre, sin ninguna opción que activar.
serializationcompressionencodingconfigstorage03Texto e idioma
Unicode 18, expresiones regulares en tiempo lineal e internacionalización con datos CLDR. Ninguno de los tres asigna memoria en su camino principal.
textregexi18n04Redes
Sockets y un bucle de eventos, un TLS 1.3 propio con X.509, un cliente HTTPS sobre él y RPC binario. Nada de esto usa OpenSSL ni ninguna otra biblioteca TLS.
networktlshttprpc06Seguridad y producto
Criptografía propia, el licenciamiento del propio Ethereal y cuatro módulos opcionales para el producto propio: protección, licencias, actualizaciones e informes de fallos. Desactivados, dejan el build idéntico.
cryptographybundleguardlicensingupdatercrashreport03Herramientas de desarrollo
El framework de tests y el arnés de medición con los que se verifica el propio Ethereal, más la biblioteca de terminal.
testingbenchcli05Matemáticas, juegos y observabilidad
Matemáticas SIMD por lotes, un ECS basado en arquetipos y las piezas para medir un proceso: profiler, estadísticas del sistema y telemetría.
mathecsprofilerstatstelemetry06Machine learning
Seis módulos para inferencia clásica, protección de modelos y búsqueda vectorial, todos desactivados por defecto, sin dependencias y sin Python en tiempo de ejecución.
Ml::TreesMl::FeaturesMl::AnomalyMl::NeuralModelGuardVectorIndex01Interfaz
FormaUI, un futuro módulo de interfaz de usuario, en desarrollo para la edición Full.
FormaUIHecho para equipos que necesitan saber lo que cuesta cada llamada.
Cero dependencias
Ninguna biblioteca de terceros, solo las del sistema operativo. SHA-2, ChaCha20-Poly1305, AES-GCM, Ed25519, X25519, P-256 y TLS 1.3 son de desarrollo propio. Sin OpenSSL, sin libsodium.
Medido y documentado
La documentación del módulo da sus cifras, la máquina y el compilador de los que salen, y los objetivos que no cumple. El changelog enumera cada cambio incompatible, con una guía de migración.
SIMD, mismos bits
Rutas SSE2 a SSE4.2, AES-NI y AVX2 elegidas en tiempo de ejecución en codificación, matemáticas por lotes, regex, checksums, cifrados y búsqueda vectorial. Donde se promete, SIMD y escalar dan bits idénticos.
C y C++
La API principal es C++20. Cuarenta y nueve módulos tienen además una capa C con handles opacos, probada como C11 y C17, lista para Rust, C#, Python o cualquier lenguaje que hable C.
Opt-in por diseño
Nada se apropia de main, y ningún hilo de trabajo arranca si no lo pides. Un módulo al que nunca se llama no llega al binario.
Falla de forma visible
Los formatos en disco llevan una versión en la cabecera. Un archivo más nuevo que el lector se rechaza en vez de leerse a ciegas, y una lectura dañada falla en vez de devolver basura.
Rápido es una cifra. Estas son las nuestras.
Builds Release en el mismo i7-6700, MSVC 19.51 en Windows y GCC 15.2 en WSL2. Cada cifra sale del README de un módulo, con sus condiciones.
Regex vs std::regex. Tiempo lineal, sin backtracking. De 10× a 351× más rápido que libstdc++ en seis de siete patrones. (a+)+b sobre 100,000 letras: menos de 1 ms.
Corrupciones en 5,052 caídas. El almacenamiento transaccional sobrevivió a cortes de corriente simulados en 1,263 puntos sobre 4 discos. Recorrido secuencial: hasta 23 M entradas/s en Linux.
Una lectura de config por handle. Cero asignaciones en diez mil lecturas, y ninguna lectura a medias en unos 50 millones durante recargas en caliente.
También publicamos lo que no se alcanza. La compresión LZ4 por bloques va de 365 a 380 MB/s frente a un objetivo de 600 MB/s. Lo dice el README, con la máquina y el compilador. Ver los 24
Una suite que pasa demuestra poco. Por eso intentamos romperla.
Se introducen defectos a propósito y los tests tienen que detectarlos. Siempre que existe una referencia externa, Ethereal se contrasta con ella, a gran escala.
| Qué | Contrastado con | Resultado |
|---|---|---|
| Ed25519 | OpenSSL, referencia Python con enteros exactos, RFC 8032 | 11,848 · 0 divergencias |
| SHA-384/512, HMAC, HKDF, AES-GCM | OpenSSL 3.5, Python cryptography 46 | 127,502 · 0 divergencias |
| X25519, P-256, P-384, RSA | los mismos oráculos, RFC 7748 y 6979 | 59,001 · 0 divergencias |
| TLS 1.3 | traza de RFC 8448, openssl s_server y s_client, Python ssl | 31 · 0 fallos |
| Compresión | liblz4, zlib, libxxhash | 79,864 · 0 divergencias |
| Unicode 18 | archivos de conformidad oficiales | 100% |
274 tests con ASan y UBSan, 274 de 274 con TSan, sin ningún informe.
100 millones de entradas de compresión, 85,000 casos TLS y 100,000 mutaciones de certificados.
Un fallo inyectado en cada operación de disco de una actualización: ninguna instalación quedó a medio escribir.
Los módulos de machine learning con estado funcionaron un día entero sin ningún error y con la memoria estable.
El próximo proyecto empieza
sobre una base terminada.
Evalúa la edición Standard completa gratis durante 30 días. Sin registro, sin tarjeta de crédito.