Более быстрая / более эффективная альтернатива маршалу Руби? - PullRequest
6 голосов
/ 22 июня 2010

Я ищу замену способности Маршала в Ruby, которая, как мы надеемся, имеет одно или несколько из следующих преимуществ перед Маршалом:

  • более быстрая сериализация / десериализация
  • более краткий (или просто меньший) объект-граф

Спасибо !!

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

К сожалению, это не работает как капля замены, потому что Marshall будет автоматически обрабатывать сложные типы.Похоже, для сборки msgpack потребуются дополнительные функциональные возможности, которые (подобно внутренним объектам Marshal) будут повторять структуры Ruby, которые определяют рассматриваемый объект.

3 голосов
/ 22 июня 2010

Msgpack ориентирован на все это. Чтобы заменить маршала:

require 'msgpack'

module Marshal
  module_function
  def dump(x)
    x.to_msgpack
  end
  def load(x)
    MessagePack.unpack x
  end
  alias restore load
end

http://msgpack.sourceforge.net/

...