Cómo crear un lenguaje de esquemas binarios para comprimir datos

Fuentes: Building a Binary Schema Language to Compress Data

El artículo técnico explica el desarrollo de un lenguaje de esquemas binario personalizado para reducir el tamaño de los payloads JSON en un 80%. El autor detalla el proceso de diseño de este formato, comenzando por la codificación básica de caracteres ASCII y la necesidad de distinguir entre tipos de datos para optimizar el espacio. Se introduce el concepto de varint, una técnica de codificación de longitud variable que permite representar enteros y cadenas de diferentes tamaños utilizando solo un par de bytes por campo, eliminando la redundancia de los encabezados fijos.

El texto describe cómo el formato final integra el tipo de dato, la longitud y el número de campo en un único entero varint mediante desplazamientos bit a bit, permitiendo una lectura eficiente por parte del decodificador. Además, se explica la importancia de un esquema de datos (schema) para definir la estructura y los tipos sin almacenarlos repetidamente en cada valor, similar a lo que hace Protobuf. El lenguaje de esquemas propuesto utiliza una sintaxis simple basada en índices y tipos, evitando la complejidad de los formatos estándar. Este enfoque permite a los desarrolladores gestionar la serialización de estructuras de datos complejas, como arrays y punteros, con una mayor eficiencia de almacenamiento y un código de serialización más limpio y mantenible.