v0.1 C++20 · C17 · zero dependências

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.

Windows x64 + Linux x64, verificados Licença perpétua Camada C para FFI
57+módulos em uma só biblioteca6 para machine learning
0dependências de terceirossó as bibliotecas do sistema
280+testes passandoMSVC e GCC, Release
0warnings do compilador/W4 · -Wall -Wextra
127.502verificações cruzadas de criptografia simétricavs OpenSSL 3.5 · 0 divergências
31casos de interoperabilidade TLS 1.3vs OpenSSL e Python · 0 falhas
o pedágio da cola

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

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.

13

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

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

Dados e formatos

Serialização, compressão, codificação, configuração e armazenamento transacional. Tudo isso é sempre compilado, sem nenhuma opção para ativar.

serializationcompressionencodingconfigstorage
03

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

textregexi18n
04

Rede

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.

networktlshttprpc
06

Seguranç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.

cryptographybundleguardlicensingupdatercrashreport
03

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

testingbenchcli
05

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

mathecsprofilerstatstelemetry
06

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

Interface

FormaUI, um futuro módulo de interface de usuário, em desenvolvimento para a edição Full.

FormaUI

Veja todos os módulos, com números e limites

princípios

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

desempenho

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.

CRC32Ccompression24,26 GB/smeta 20
Codificação hexencoding · AVX219,32 GB/smeta 12
Busca literalregex · 1 MB, em cache14,1 GB/smeta 10
Decodificação Base64encoding · AVX213,93 GB/smeta 6
Codificação Base64encoding · AVX212,44 GB/smeta 8
Descompressão LZ4compression3,24 GB/sWindows x64

Windows x64, MSVC 19.51, Release, blocos de 64 KiB a 1 MB. Os números do Linux estão na página de desempenho.

351×

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.

0

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.

3,52 ns

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

verificação

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.

ÁreaConferido comResultado
Ed25519OpenSSL, referência Python com inteiros exatos, RFC 803211.848 · 0 divergências
SHA-384/512, HMAC, HKDF, AES-GCMOpenSSL 3.5, Python cryptography 46127.502 · 0 divergências
X25519, P-256, P-384, RSAos mesmos oráculos, RFC 7748 e 697959.001 · 0 divergências
TLS 1.3trace da RFC 8448, openssl s_server e s_client, Python ssl31 · 0 falhas
Compressãoliblz4, zlib, libxxhash79.864 · 0 divergências
Unicode 18arquivos oficiais de conformidade100%
Sanitizers limpos

274 testes com ASan e UBSan, 274 de 274 com TSan, nenhum relatório de erro.

Fuzzing em larga escala

100 milhões de entradas de compressão, 85.000 casos de TLS e 100.000 mutações de certificado.

Quedas de energia

Uma falha injetada em cada operação de disco de uma atualização: nenhuma instalação ficou pela metade.

24 horas seguidas

Os módulos de machine learning com estado rodaram um dia inteiro sem nenhum erro e com memória estável.

licenciamento

Compre uma vez. É seu para sempre.

  • Todos os módulos, preço por tamanho de equipe, projetos ilimitados
  • Uso comercial incluído, licença perpétua
  • 1 ou 2 anos de atualizações, e o que você recebeu continua seu depois disso
  • Verificação offline, sem trava por máquina, sem contato com servidor
perpétua, a partir de
$349 pagamento único
quando você quiser

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.

Saiba mais sobre a Typename Studios e seus produtos