Иногда мне нужно переслать CBOR или JSON - и хотелось бы указать получателю, в каком же формате отправлены данные.
Иногда хочется пожать CBOR сверху, и указать уже два тега: 1) данные архивированы, таким-то образом, 2) данные представлены в CBOR
Иногда хочется вообще странного: 1) Преобразовать в CBOR; 2) Сжать; 3) Передать в «безопасной» кодировке Base64, которая не сломает, например, Protocol::Redis::XS
Сейчас я активно пользуюсь своим пакетом Tag::DeCoder, который читает 4-х байтовый тег в начале строки («{CB}» - значит CBOR, «{JS}» - JSON и т.д.) и декодирует, либо кодирует данные с нужным тегом.
Но для многослойного кодирования уже не хотелось бы пользоваться чисто perl'овым кодом или же код должен быть очень хорошо продуман с точки зрения скорости кодирования/декодирования.
Понятно, что можно и свой модуль дописать, это на коленке абы как сделать было быстрее, чем сюда написать.
Просто - вдруг уже есть что-то подобное? Обычно всё, что мне хотелось бы - «не нужно» или есть что-то громоздкое и заумное, что «все пацаны на районе уже 100 лет используют и только ты в танке». Но мало ли, вдруг не я один такой странный. Искал - не нашёл. Возможно, искал не так.
ОТВЕТ:
Сделал сам: https://github.com/DRVTiny/Tag--DeCoder