Я ищу общедоступную замену возможности Маршала Ruby, которая, надо надеяться, имеет один или несколько следующих преимуществ перед Маршалом:
Спасибо!!
Msgpack предназначен для всего этого. Для замены Marshal:
require 'msgpack'
module Marshal
module_function
def dump(x)
x.to_msgpack
end
def load(x)
MessagePack.unpack x
end
alias restore load
end
К сожалению, это не работает как капля замены, потому что Marshall автоматически обрабатывает сложные типы. Похоже, msgpack потребует создания дополнительных функций, которые (например, внутренние компоненты Marshal) будут перебирать структуры Ruby, которые определяют рассматриваемый объект.