From: "Carlos J. Hernandez" Date: 2008-01-09T04:01:56+09:00 Subject: Re: Marshal Pipe Ara: Yaml is find over internet connection where transmission time is high compared to cpu time, and where human readability is a plus. For my case, separate programs/processes on the same machine working very closely as if a single program in a pipe architecture... Marshal is better. In fact, if Marshal is a bit of a Hybrid (don't know the details), then what I really want is pure binary, I think. Anyways, for a bit more details of my implementation, taking out the specifics of my application and including Roberts' comments, I now have: class MarshalPipe def self.puts(data) Marshal.dump( data, $stdout ) end def _pipe data = nil while data = Marshal.load($stdin) do pipe(data) break if $stdin.eof? end end end I don't know why this did not work: until $stdin.eof do data = Marshal.load($stdin) pipe( data ) end