v0.1 C++20 · C17 · cero dependencias

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.

Windows x64 + Linux x64, verificados Licencia perpetua Capa C para FFI
57+módulos en una biblioteca6 de machine learning
0dependencias de tercerossolo las bibliotecas del sistema operativo
280+tests superadosMSVC y GCC, Release
0advertencias del compilador/W4 · -Wall -Wextra
127,502verificaciones cruzadas de cripto simétricavs OpenSSL 3.5 · 0 divergencias
31casos de interoperabilidad TLS 1.3vs OpenSSL y Python · 0 fallos
el impuesto del pegamento

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
la biblioteca

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.

13

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+5
12

Sistema 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+4
05

Datos y formatos

Serialización, compresión, codificación, configuración y almacenamiento transaccional. Todo se compila siempre, sin ninguna opción que activar.

serializationcompressionencodingconfigstorage
03

Texto 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.

textregexi18n
04

Redes

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.

networktlshttprpc
06

Seguridad 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.

cryptographybundleguardlicensingupdatercrashreport
03

Herramientas 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.

testingbenchcli
05

Matemá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.

mathecsprofilerstatstelemetry
06

Machine 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::NeuralModelGuardVectorIndex
01

Interfaz

FormaUI, un futuro módulo de interfaz de usuario, en desarrollo para la edición Full.

FormaUI

Ver todos los módulos, con sus cifras y sus límites

principios

Hecho 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.

rendimiento

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.

CRC32Ccompression24.26 GB/sobjetivo 20
Codificación hexencoding · AVX219.32 GB/sobjetivo 12
Búsqueda literalregex · 1 MB, en caché14.1 GB/sobjetivo 10
Decodificación Base64encoding · AVX213.93 GB/sobjetivo 6
Codificación Base64encoding · AVX212.44 GB/sobjetivo 8
Descompresión LZ4compression3.24 GB/sWindows x64

Windows x64, MSVC 19.51, Release, bloques de 64 KiB a 1 MB. Las cifras de Linux están en la página de rendimiento.

351×

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.

0

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.

3.52 ns

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

verificación

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 conResultado
Ed25519OpenSSL, referencia Python con enteros exactos, RFC 803211,848 · 0 divergencias
SHA-384/512, HMAC, HKDF, AES-GCMOpenSSL 3.5, Python cryptography 46127,502 · 0 divergencias
X25519, P-256, P-384, RSAlos mismos oráculos, RFC 7748 y 697959,001 · 0 divergencias
TLS 1.3traza de RFC 8448, openssl s_server y s_client, Python ssl31 · 0 fallos
Compresiónliblz4, zlib, libxxhash79,864 · 0 divergencias
Unicode 18archivos de conformidad oficiales100%
Sanitizers limpios

274 tests con ASan y UBSan, 274 de 274 con TSan, sin ningún informe.

Fuzzing a gran escala

100 millones de entradas de compresión, 85,000 casos TLS y 100,000 mutaciones de certificados.

Cortes de corriente

Un fallo inyectado en cada operación de disco de una actualización: ninguna instalación quedó a medio escribir.

24 horas seguidas

Los módulos de machine learning con estado funcionaron un día entero sin ningún error y con la memoria estable.

licencias

Se compra una vez. Es tuya para siempre.

  • Todos los módulos, precio según el tamaño del equipo, proyectos ilimitados
  • Uso comercial incluido, licencia perpetua
  • 1 o 2 años de actualizaciones, y después se conserva lo obtenido
  • Verificación sin conexión, sin bloqueo a la máquina, sin llamadas a casa
perpetua, desde
$349 pago único
cuando quieras

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.

Conoce más sobre Typename Studios y sus productos