> zeromq | seguro para código | eficiente <
// Z85 — variante Base85 de ZeroMQ segura para cadenas de código y JSON
Amigable con el código
No usa comillas, barras invertidas ni espacios en blanco, por lo que es seguro para cadenas C/C++ y objetos JSON sin escapes adicionales.
Alta densidad
Aproximadamente un 25 % de sobrecarga, más eficiente que Base64 (≈33 %) a la hora de representar binarios como texto.
Estándar ZeroMQ
Codificación oficial utilizada por ZeroMQ para datos binarios en protocolos basados en texto.
>> detalles técnicos
Cómo funciona Z85:
Z85 codifica bloques de 4 bytes en 5 caracteres utilizando 85 caracteres ASCII imprimibles. El alfabeto está diseñado para evitar caracteres que requieran escape en cadenas C/C++ o en JSON, lo que simplifica la inclusión de binarios en código o configuraciones.
Ejemplo:
"Hello" → nm=QNz.92
Por qué usar Z85:
- >Incrustar datos binarios directamente en código fuente o archivos de configuración
- >Evitar escapes adicionales en JSON, YAML, XML o cadenas literales
- >Reducir el tamaño de la representación textual en comparación con Base64
- >Alinear tu formato con el ecosistema de ZeroMQ
- >Estandarizar cómo representas datos binarios en APIs de texto plano
>> preguntas frecuentes
¿Qué es la codificación Z85?
Z85 es la variante Base85 de ZeroMQ. Utiliza 85 caracteres ASCII imprimibles elegidos específicamente para ser seguros dentro de código fuente y estructuras JSON sin necesidad de escapes.
¿En qué se diferencia Z85 de otros Base85?
A diferencia de otras variantes Base85, Z85 evita comillas, barras invertidas, espacios y otros caracteres problemáticos para que las cadenas puedan copiarse directamente a código o configuraciones.
¿Cuándo debería usar Z85?
Cuando necesites insertar binarios en código, archivos de configuración o protocolos de texto (especialmente si usas ZeroMQ) y quieras minimizar problemas de escape y legibilidad.
¿Qué restricciones de longitud tiene Z85?
La longitud de los datos binarios debe ser múltiplo de 4 bytes. El codificador puede rellenar si es necesario, pero el decodificador asume esta propiedad para reconstruir el flujo de bytes original.