views:

75

answers:

2

I'm looking for a drop-in replacement of Ruby's Marshal capability, which hopefully has one or more of the following advantages over Marshal:

  • faster serialization/deserialization
  • more concise (or simply smaller) object-graph

Thanks!!

+2  A: 

Msgpack is focused on all of that. To replace 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

http://msgpack.sourceforge.net/

Adrian
thank you! really helpful
Joe
+1  A: 

Unfortunately that doesn't work as a drop in replacement because Marshall will automatically handle complex types. Looks like msgpack will require additional functionality to be built that (like Marshal's internals) will iterate the Ruby structures that define the object in question.

Asher
Yeah, msgpack also just converts symbols to strings. This question was mostly asking for a fast library, though.
Adrian