Chega de colar bibliotecas.
Hora de entregar.
O Ethereal é uma biblioteca C++20 com 57+ módulos para software de sistemas: memória, concorrência, rede com TLS 1.3 próprio, criptografia, armazenamento, Unicode 18, telemetria e machine learning. Zero dependências de terceiros. Números medidos, limites publicados.
Todo projeto C++ paga pela cola. O Ethereal acaba com ela.
Um logger daqui, um stack TLS dali, uma biblioteca de compressão, outra de Unicode, um parser de configuração, um banco chave-valor. Cada um com seus próprios erros, seu próprio alocador e seu próprio calendário de versões. A cola entre eles é código que ninguém queria escrever.
Um stack típico 10 bibliotecas
- Dez convenções de erro e dez modelos de alocação
- Dez ciclos de versão e dez boletins de segurança para acompanhar
- Scripts de build que quebram no próximo compilador
- Sem saber de verdade quanto custa cada chamada
Ethereal 1 biblioteca
- Uma única convenção de erro em todos os módulos
- Nenhuma thread de trabalho ou singleton que se inicia sozinho
- Módulos que você não chama nunca entram no binário
- Números e limites publicados para cada módulo
57+ módulos. Uma só convenção.
Use todos juntos ou um de cada vez. O SDK é uma biblioteca estática, então o seu binário leva só os módulos que o seu código chama.
Fundação
A base de todos os outros módulos: plataforma, asserções, diagnóstico, logging, memória, estruturas de capacidade fixa, bits, strings, aleatoriedade, identificadores, descrição de tipos e máquinas de estado. Tudo isso é sempre compilado.
platformversionassertdiagnosticslogmemorycontainersbits+512Sistema e concorrência
Sistema operacional, arquivos, tempo, processos, plugins, threads, fibers e as políticas que protegem uma chamada que pode falhar. Nenhum desses módulos cria uma thread que o chamador não pediu.
systemfiletimeprocesspluginconcurrencymutexevent+405Dados e formatos
Serialização, compressão, codificação, configuração e armazenamento transacional. Tudo isso é sempre compilado, sem nenhuma opção para ativar.
serializationcompressionencodingconfigstorage03Texto e idioma
Unicode 18, expressões regulares em tempo linear e internacionalização com dados do CLDR. Nenhum dos três aloca no caminho principal.
textregexi18n04Rede
Sockets e event loop, um TLS 1.3 próprio com X.509, um cliente HTTPS em cima dele e RPC binário. Nada disso usa OpenSSL nem outra biblioteca de TLS.
networktlshttprpc06Segurança e produto
Criptografia própria, o licenciamento do próprio Ethereal e quatro módulos opcionais para o seu produto: proteção, licenças, atualizações e relatórios de falha. Desligados, não alteram em nada o build.
cryptographybundleguardlicensingupdatercrashreport03Ferramentas de desenvolvimento
O framework de testes e o harness de medição usados para verificar o próprio Ethereal, além da biblioteca de terminal.
testingbenchcli05Matemática, jogos e observabilidade
Matemática SIMD em lote, um ECS baseado em arquétipos e as peças para medir um processo: profiler, estatísticas do sistema e telemetria.
mathecsprofilerstatstelemetry06Machine learning
Seis módulos para inferência clássica, proteção de modelos e busca vetorial, todos desligados por padrão, sem dependências e sem Python em tempo de execução.
Ml::TreesMl::FeaturesMl::AnomalyMl::NeuralModelGuardVectorIndex01Interface
FormaUI, um futuro módulo de interface de usuário, em desenvolvimento para a edição Full.
FormaUIFeito para equipes que precisam saber quanto custa cada chamada.
Zero dependências
Nenhuma biblioteca de terceiros, só as do sistema operacional. SHA-2, ChaCha20-Poly1305, AES-GCM, Ed25519, X25519, P-256 e TLS 1.3 foram desenvolvidos internamente. Sem OpenSSL, sem libsodium.
Medido e documentado
A documentação do módulo traz seus números, a máquina e o compilador em que foram medidos e as metas que ele não cumpre. O changelog lista cada mudança incompatível, com um guia de migração.
SIMD, mesmos bits
Caminhos SSE2 a SSE4.2, AES-NI e AVX2 escolhidos em runtime para codificação, matemática em lote, regex, checksums, cifras e busca vetorial. Onde isso é garantido, SIMD e escalar produzem exatamente os mesmos bits.
C e C++
A API principal é C++20. Quarenta e nove módulos também têm uma camada C com handles opacos, testada em C11 e C17, pronta para Rust, C#, Python ou qualquer linguagem que fale C.
Tudo é opt-in
Nada assume o controle do main, e nenhuma thread de trabalho começa sem que você peça. Um módulo que você nunca chama nunca chega ao binário.
Falha às claras
Os formatos em disco trazem a versão no cabeçalho. Um arquivo mais novo que o leitor é recusado, e não lido às cegas, e uma leitura com problema falha em vez de devolver lixo.
Rápido é um número. Estes são os nossos.
Builds Release no mesmo i7-6700, MSVC 19.51 no Windows e GCC 15.2 no WSL2. Cada número vem do README de um módulo, com as condições da medição.
Regex vs std::regex. Tempo linear, sem backtracking. De 10× a 351× mais rápido que a libstdc++ em seis de sete padrões. (a+)+b em 100.000 letras: menos de 1 ms.
Corrupções em 5.052 quedas. O armazenamento transacional sobreviveu a quedas de energia simuladas em 1.263 pontos, em 4 discos. Varredura sequencial: até 23 M entradas/s no Linux.
Leitura de config por handle. Zero alocações em dez mil leituras e nenhuma leitura inconsistente em cerca de 50 milhões, durante recargas a quente.
Também publicamos o que não atingimos. A compressão LZ4 em blocos roda entre 365 e 380 MB/s, contra uma meta de 600 MB/s. Isso está escrito no README, com a máquina e o compilador. Ver todas as 24
Uma suíte que passa prova pouco. Por isso tentamos quebrá-la.
Plantamos defeitos de propósito, e os testes precisam pegá-los. Sempre que existe uma referência externa, o Ethereal é comparado com ela em larga escala.
| Área | Conferido com | Resultado |
|---|---|---|
| Ed25519 | OpenSSL, referência Python com inteiros exatos, RFC 8032 | 11.848 · 0 divergências |
| SHA-384/512, HMAC, HKDF, AES-GCM | OpenSSL 3.5, Python cryptography 46 | 127.502 · 0 divergências |
| X25519, P-256, P-384, RSA | os mesmos oráculos, RFC 7748 e 6979 | 59.001 · 0 divergências |
| TLS 1.3 | trace da RFC 8448, openssl s_server e s_client, Python ssl | 31 · 0 falhas |
| Compressão | liblz4, zlib, libxxhash | 79.864 · 0 divergências |
| Unicode 18 | arquivos oficiais de conformidade | 100% |
274 testes com ASan e UBSan, 274 de 274 com TSan, nenhum relatório de erro.
100 milhões de entradas de compressão, 85.000 casos de TLS e 100.000 mutações de certificado.
Uma falha injetada em cada operação de disco de uma atualização: nenhuma instalação ficou pela metade.
Os módulos de machine learning com estado rodaram um dia inteiro sem nenhum erro e com memória estável.
Seu próximo projeto começa
com a base pronta.
Avalie a edição Standard completa grátis por 30 dias. Sem cadastro, sem cartão de crédito.