29 puntos por xguru 2025-12-12 | Aún no hay comentarios. | Compartir por WhatsApp
  • Formato de serialización binaria Zero-Copy desarrollado para eliminar la frontera entre el parseo de datos y la serialización
  • Codifica los datos en una estructura de árbol B dentro de un único búfer contiguo, lo que permite acceso y modificación de campos arbitrarios en tiempo O(log n)
  • El formato en memoria funciona también como formato de transmisión, por lo que se puede enviar y recibir de inmediato sin procesos separados de parseo o reserialización
    • Desde el momento de la recepción, la búsqueda de claves, la modificación de valores y la transmisión se manejan solo con copias de memoria (memcpy)
  • Estructura sin esquema (self-describing), utilizable sin IDL ni definición de esquema
    • Soporta conversión bidireccional con JSON, asegurando compatibilidad con APIs y datasets existentes
    • Puede imprimirse en formato JSON para depuración e inspección de mensajes
  • Diseño centrado en el rendimiento
    • Compuesto por una estructura de árbol B amigable con la caché y una implementación mínima en C de 9.3 kB
    • Hasta 120 veces más rápido que las bibliotecas JSON más rápidas que usan SIMD, y hasta 242 veces más rápido que Google Flatbuffers
    • Es uno de los formatos de datos sin esquema más rápidos del mundo
  • Características técnicas
    • Soporta lectura/escritura zero-copy, con todas las operaciones de E/S de complejidad O(log n)
    • Incluye validación de punteros y seguridad de tipos en tiempo de ejecución
    • No usa malloc(), el búfer lo proporciona directamente quien llama
    • Latencia predecible y bajo uso de memoria
    • Basado en C11 (sintaxis GNU C), sin dependencias externas
    • Opcionalmente usa yyjson como subdependencia para soportar conversión con JSON
  • Composición de la API
    • Buffer API: basada en un búfer proporcionado por el usuario, maximiza el control de memoria
    • Context API: abstrae la gestión de memoria y ofrece una interfaz simple
  • Comparaciones y resultados de benchmarks
    • Velocidad de procesamiento abrumadora frente a formatos de texto como JSON, BSON y MessagePack
    • Ofrece mayor flexibilidad y capacidad de modificación que formatos binarios como Cap’n Proto y Flatbuffers
    • Registra rendimiento de primer nivel con datos reales de la API de Twitter, Kostya JSON y benchmarks de serialización en C++
  • Diseño de seguridad
    • Incluye verificaciones de límites con protección contra overflow, macros de punteros por generación, límites de recursión y validación de tipos en tiempo de ejecución
    • Estructura adecuada para procesar datos de entrada no confiables
  • Contextos de uso
    • Máxima eficiencia de CPU en mensajería de red de alto rendimiento, procesamiento de datos en tiempo real y entornos embebidos
    • Aplicable de inmediato en sistemas basados en interfaces C
  • Licencia y extensibilidad
    • Publicado bajo licencia MIT, con una implementación independiente en C
    • Tiene una hoja de ruta futura con bindings de lenguaje, benchmarks de compresión y una especificación oficial, entre otros
  • Origen y antecedentes
    • Proyecto reimplementado de forma independiente a partir del concepto propuesto en el artículo Lite² publicado en 2024
    • El nombre Lite³ significa que es más ligero que Lite²

Aún no hay comentarios.

Aún no hay comentarios.