29 pontos por xguru 2025-12-12 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Formato de serialização binária zero-copy desenvolvido para eliminar a fronteira entre parsing e serialização de dados
  • Codifica os dados em uma estrutura B-tree dentro de um único buffer contínuo, permitindo acesso e modificação de campos arbitrários em tempo O(log n)
  • O formato em memória funciona como o próprio formato de transmissão, permitindo envio e recebimento imediatos sem parsing ou reserialização separados
    • Assim que os dados são recebidos, busca de chaves, modificação de valores e transmissão podem ser feitos apenas com cópia de memória (memcpy)
  • Estrutura sem schema (self-describing), utilizável sem IDL nem definição de schema
    • Suporta conversão bidirecional com JSON, garantindo compatibilidade com APIs e conjuntos de dados existentes
    • Em depuração e inspeção de mensagens, pode ser exibido em formato JSON
  • Projeto orientado a desempenho
    • Composto por uma estrutura B-tree amigável a cache e uma implementação mínima em C de 9.3 kB
    • Até 120 vezes mais rápido que as bibliotecas JSON mais rápidas com SIMD e até 242 vezes mais rápido que Google Flatbuffers
    • É um dos formatos de dados schemaless mais rápidos do mundo
  • Características técnicas
    • Suporte a leitura/escrita zero-copy, com todas as operações de I/O em complexidade O(log n)
    • Verificação de ponteiros e segurança de tipos em tempo de execução integradas
    • Não usa malloc(), com o buffer sendo fornecido diretamente pelo chamador
    • Latência previsível e baixo uso de memória
    • Baseado em C11 (sintaxe GNU C), sem dependências externas
    • Opcionalmente usa yyjson como subdependência para suportar conversão com JSON
  • Composição da API
    • Buffer API: baseada em buffer fornecido pelo usuário, maximizando o controle de memória
    • Context API: abstrai o gerenciamento de memória e oferece uma interface simples
  • Resultados de comparação e benchmark
    • Velocidade de processamento esmagadora em relação a formatos de texto como JSON, BSON e MessagePack
    • Oferece maior flexibilidade e possibilidade de modificação do que formatos binários como Cap’n Proto e Flatbuffers
    • Registrou desempenho de ponta em dados reais da API do Twitter, Kostya JSON, benchmarks de serialização em C++ e outros
  • Projeto de segurança
    • Inclui verificações de limites com proteção contra overflow, macros de ponteiro por geração, limite de recursão e validação de tipos em tempo de execução
    • Estrutura adequada para processar dados de entrada não confiáveis
  • Contextos de uso
    • Máxima eficiência de CPU em mensageria de rede de alto desempenho, processamento de dados em tempo real, ambientes embarcados e afins
    • Pode ser aplicado imediatamente em sistemas baseados em interface C
  • Licença e extensibilidade
    • Publicado sob a licença MIT, como implementação independente em C
    • Há um roadmap futuro com bindings para linguagens, benchmarks de compressão e especificação oficial, entre outros
  • Origem e contexto
    • Projeto reimplementado de forma independente com base no conceito proposto no artigo Lite², publicado em 2024
    • O nome Lite³ significa que ele é ainda mais leve que Lite²

Ainda não há comentários.

Ainda não há comentários.