Cada módulo, com o que faz, o que foi medido e os limites que conhecemos. Clique em qualquer cartão para ver a ficha completa.
57 de 57 módulos · mais o FormaUI, em desenvolvimento
Introspecção do sistema: módulos, processos, threads, regiões e a memória de outro processo, exports, integridade da imagem, privilégios, dados do sistema e da CPU, discos, interfaces de rede e fingerprint da máquina. Cada parte é validada com um oráculo independente.
Guarda e devolve o nome e a versão da aplicação como string C, std::string ou CAString.
std::string
CAString
Despacho de falhas de asserção. Listeners observam a falha e uma única política decide o que fazer. Nenhuma alocação no caminho de falha.
Warnings e erros formatados no estilo std::format e uma classe de exceção da biblioteca.
std::format
Logging em arquivo, console e saída do depurador, em modo síncrono ou assíncrono.
Alocadores arena e pool, e um gerenciador central que rastreia alocações por tag.
Estruturas de capacidade fixa que nunca usam o alocador depois de construídas. Só templates.
Manipulação de bits: operações básicas, máscaras, empacotamento, varredura, códigos de Morton e um stream de leitura e escrita bit a bit.
Strings próprias ASCII e wide, com small-string optimization (até 64 caracteres), além de funções de comparação e formatação.
Geração de números aleatórios: rápida, determinística a partir de uma semente ou segura pelo gerador do sistema operacional.
Identificadores de 128 bits como valores: gerar, fazer parsing, comparar, ordenar e calcular hash.
Descrição de tipos em tempo de compilação (structs, enums, flags), header-only, sem RTTI e sem alocação.
Máquina de estados finita com tabela de transições declarada e despacho run-to-completion.
Console, threads e medição de CPU, memória e disco, por processo e por máquina.
Utilitários de arquivos e pastas, e uma API C de arquivos com mapeamento em memória e caminhos UTF-8 nas duas plataformas.
Durações, instantes, relógios, cronômetro, prazos, calendário, formatação e parsing de datas, timers e sleep. Um módulo folha.
Cria processos filhos e espera por eles, e oferece IPC local: um canal de mensagens com framing, memória compartilhada, um anel zero-copy e sincronização nomeada entre processos.
Carregamento dinâmico de plugins com contrato em C e uma verificação de ABI que rejeita um plugin incompatível sem executar uma linha sequer dele. Troca a quente com chamadas em andamento.
Sistema de jobs com grupos e modos de execução: worker threads persistentes ou rotinas assíncronas desacopladas.
Mutex recursivo com rastreamento do dono e um guard RAII.
Sinais e um barramento de eventos sem std::function e sem shared_ptr. Um slot é um par de contexto e ponteiro de função num vetor contíguo. A reentrância é tratada.
std::function
shared_ptr
Fibers com troca de contexto em assembly e um scheduler M:N com work stealing, além de grupos, cancelamento, sincronização entre fibers e canais.
Agenda de jobs (por exemplo, todo dia útil às 03:00 no horário local) sem thread própria. Usa os relógios do time e despacha em um executor fornecido pelo integrador.
time
Políticas que envolvem uma chamada que pode falhar: retentativas, circuit breaker, limite de concorrência e rate limit, compostas em ordem fixa.
Cache em memória com tabela Robin Hood sobre um bloco pré-alocado, e uma variante com shards para várias threads.
Stream binário portátil e versionado com erro persistente: depois da primeira falha, toda leitura falha, em vez de devolver lixo.
Compressão, descompressão e os checksums dos contêineres. O formato é passado como valor (Compress, Decompress, CompressBound), com detecção do formato pelo início do stream.
Compress
Decompress
CompressBound
Converte bytes em texto e vice-versa: hex, base64, base32, percent-encoding, quoted-printable e transcodificação Unicode. Um módulo folha, sem dependência de nenhum outro módulo.
Carrega configuração de várias fontes (TOML v1.0.0, INI, JSON estrito e tolerante, variáveis de ambiente, linha de comando), mescla tudo em camadas uma única vez e depois lê sem fazer busca.
Banco chave-valor transacional embarcado com uma árvore B+ baseada em páginas e um WAL de página inteira. Um escritor e vários leitores que nunca esperam por ele. Não cria threads e não é SQL.
Tudo o que exige saber o que é cada caractere no Unicode 18.0.0: propriedades, normalização, caixa, segmentação, quebra de linha, largura, ordenação, IDNA e bidi. As tabelas são geradas a partir do UCD, e nenhum caminho usa memória dinâmica.
Expressões regulares baseadas em autômatos, sem backtracking, sempre lineares no tamanho da entrada. Texto e padrões em UTF-8, com semântica RE2 e Perl.
Faz um produto falar mais de um idioma: plurais do CLDR 48.2, formatação sensível ao locale, mensagens ICU MessageFormat e catálogos compilados gerados pela ferramenta etl-i18n.
etl-i18n
TCP, UDP, o ETL-RUDP (protocolo confiável próprio sobre UDP), um event loop baseado em conclusão e um canal criptografado.
TLS 1.3 próprio (RFC 8446), cliente e servidor, com o X.509 de que precisa: DER, certificados, cadeias, nomes de host, PEM e as raízes do sistema. Só TLS 1.3, de propósito: o 1.2 dobraria a superfície de ataque.
Cliente HTTPS síncrono (Ethereal::Web::CWeb). Monta uma requisição HTTP/1.1, envia pelo TLS 1.3 do módulo tls e lê a resposta inteira. Se o seu código nunca chama o módulo, nada dele vai para o binário.
Ethereal::Web::CWeb
tls
RPC com frame binário fixo de 24 bytes protegido por CRC, despacho por número de método negociado uma vez por conexão, streams com janela, multiplexação e um barramento de tópicos. Um identificador por requisição impede que uma resposta atrasada vire a resposta da próxima chamada.
Checksums, digests, criptografia autenticada, derivação de chaves, acordo de chaves, assinaturas e ofuscação, tudo implementado dentro da biblioteca.
Licenciamento do próprio Ethereal. Uma chamada por aplicação libera a biblioteca, e outra devolve os dados da licença.
Primitivas de hardening contra engenharia reversa para software legítimo. O módulo detecta, mede e protege, mas nunca decide: não encerra processos nem acessa a rede. Tudo vem desligado, com uma opção do CMake para cada peça.
Kit de licenças Ed25519 para embutir no seu produto e licenciar os seus próprios usuários. O produto verifica só com a chave pública, e o emissor assina no servidor do vendedor. É separado do bundle, que licencia o próprio Ethereal.
bundle
Canal de atualização assinado: Ed25519 sobre um manifesto, mais SHA-256 por artefato e por arquivo. Não cria threads nem abre sockets sozinho. A rede entra por interfaces, e tudo avança pelo Tick.
Tick
Relatórios de erro e o envio deles. O contexto é registrado em um bloco pré-alocado no Init, e o envio só acontece com o consentimento do usuário.
Init
Framework de testes sem dependências. Asserções e registro só em headers (C++17), mais um runner e um main prontos. Não usa exceções nem RTTI, e as asserções não alocam.
main
O harness de medição. Calibra o lote, aquece até a frequência estabilizar, informa mediana, p90, p99, mínimo e MAD, registra o ambiente e tem um portão estatístico de regressão. Inclui a ferramenta etl-bench.
etl-bench
Saída de terminal com buffer próprio, cor e estilo com degradação gradual, largura de coluna, barra de progresso, editor de linha e um parser de argumentos que não aloca.
Escalares, vetores, matrizes e primitivas geométricas, com o SIMD concentrado em funções de lote que transformam, normalizam e multiplicam milhares de elementos de uma vez.
Entidades, componentes e sistemas com armazenamento por arquétipo, em chunks de 16 KB com um array contíguo por componente, e entidades geracionais de 64 bits.
Medição de tempo por seção, com relatório e exportação em CSV.
Estatística descritiva sobre fluxos de amostras.
Métricas, traces no padrão W3C Trace Context e exportação para Prometheus, OTLP (protobuf e JSON), StatsD e JSON lines. Não tem thread, socket nem endereço próprios: a exportação roda quando o integrador chama Tick.
Carrega um modelo de árvores treinado no LightGBM ou no XGBoost e faz a predição com os mesmos números da biblioteca de origem. O modelo é convertido uma vez pela ferramenta etl-trees para um formato mapeado em memória, sem parsing no carregamento.
etl-trees
Recebe eventos por entidade e entrega o vetor que o modelo espera, na ordem da especificação. Existe para evitar divergência entre as features de treino e as de produção.
Detecta anomalias e mudanças sem rótulos. Produz um score calibrado, com o motivo, para uma fila de revisão. O módulo nunca age. Requer Ml::Trees.
Ml::Trees
Inferência de redes pequenas (MLP, convoluções, LSTM e GRU) dentro do binário, a partir de um formato próprio convertido de ONNX pela ferramenta etl-neural. O cliente nunca lê ONNX.
etl-neural
Trata o modelo como um ativo protegido. Assina com Ed25519, criptografa em repouso com ChaCha20-Poly1305, vincula a uma licença, aplica a marca d'água do licenciado, carrega em uma região protegida e verifica os pesos carregados em memória.
Busca de vizinhos mais próximos para embutir: HNSW no estilo do hnswlib, com força bruta exata ao lado. Abaixo de cerca de 10.000 vetores, o modo automático escolhe a força bruta.
Um módulo de interface de usuário, em desenvolvimento. Vai fazer parte da edição Full.
Todos os módulos estão na edição Standard. Experimente todos por 30 dias.