> zeromq | безопасно для кода | эффективно <

// Z85 — вариант Base85 из ZeroMQ, безопасный для исходного кода и JSON

[SOURCE-SAFE]

Удобен для исходного кода

Не содержит кавычек, обратных слэшей или пробелов — строки безопасно вставляются в C/C++‑код, JSON и конфигурационные файлы без дополнительного экранирования.

[ЭФФЕКТИВНО]

Высокая плотность

Около 25 % накладных расходов — эффективнее Base64 (~33 %) при текстовом представлении бинарных данных.

[ZEROMQ]

Стандарт ZeroMQ

Официальная схема кодирования для бинарных данных в текстовых протоколах ZeroMQ.

>> техническая информация

Как работает Z85:

Z85 кодирует блоки по 4 байта в 5 символов, используя 85 печатаемых ASCII‑символов. Алфавит подобран так, чтобы исключить символы, требующие экранирования в строках C/C++ и JSON, что упрощает встраивание бинарных данных в исходный код и конфигурации.

Пример:

"Hello" → nm=QNz.92

Зачем использовать Z85:

  • >Встраивание бинарных данных непосредственно в исходный код
  • >Минимум экранирования в JSON, YAML, XML и текстовых форматах
  • >Более компактное представление по сравнению с Base64
  • >Совместимость с экосистемой ZeroMQ и её протоколами
  • >Единообразное кодирование бинарных payload'ов в текстовых API и протоколах

>> часто задаваемые вопросы

Что такое кодирование Z85?

Z85 — это вариант Base85, определённый ZeroMQ. Он использует 85 печатаемых ASCII‑символов, подобранных таким образом, чтобы строки можно было безопасно вставлять в исходный код без экранирования.

Чем Z85 отличается от обычного Base85?

В отличие от некоторых других реализаций Base85, Z85 исключает кавычки, обратные слэши, пробелы и другие символы, требующие экранирования в большинстве языков программирования.

Когда стоит использовать Z85?

Когда нужно включать бинарные данные в исходный код, конфигурационные файлы или текстовые протоколы (особенно с ZeroMQ), и при этом важно минимизировать потребность в экранировании.

Каковы ограничения по длине данных для Z85?

Длина бинарных данных должна быть кратна 4 байтам. Энкодер может добавить заполнитель, но декодер исходит из этого требования, чтобы корректно восстановить исходную последовательность байт.

Другие языки