Формат сериализации Marshal в Ruby
В Ruby любой объект можно превратить (сериализовать) в последовательность байт, а
потом без каких-либо потерь обратно восстановить в объект. Для этого нужен
модуль Marshal
и методы dump
и load
, которые идут из коробки.
Это очень любопытный механизм, потому что он универсальный (может
сериализовать любой объект любого класса) и совместимый (как backward так
и forward) с предыдущими версиями Ruby. Кроме того одна из целей -
это маленький размер дампа. Экономят буквально на байтах. Учитывая
динамическую природу Ruby, богатство функционала и большую стандартную
библиотеку разработать такой формат было нетривиальной задачей.