Re: [Haskell-cafe] The state of binary (de)serialization

2013-03-01 Thread Lennart Kolmodin
Hey guys, I didn't see this thread at first, thanks to Johan for bringing it to my attention. cereal is a fork of binary, and provided a incremental interface before binary did. It also has a few additional combinators like isolate and label, which is the reason why safecopy uses cereal instead

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-28 Thread wren ng thornton
On 2/27/13 2:17 AM, Vincent Hanquez wrote: Two major problems of lazy bytestrings is that: * you can't pass it to a C bindings easily. * doing IO with it without rewriting the chunks, can sometimes (depending how the lazy bytestring has been produced) result in a serious degradation of

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-28 Thread Nicolas Trangez
On Thu, 2013-02-28 at 01:22 -0800, wren ng thornton wrote: On 2/27/13 2:17 AM, Vincent Hanquez wrote: Two major problems of lazy bytestrings is that: * you can't pass it to a C bindings easily. * doing IO with it without rewriting the chunks, can sometimes (depending how the lazy

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-28 Thread Nicolas Trangez
On Mon, 2013-02-25 at 11:59 -0800, Johan Tibell wrote: On Mon, Feb 25, 2013 at 4:30 AM, Nicolas Trangez nico...@incubaid.comwrote: - cereal supports chunk-based 'partial' parsing (runGetPartial). It looks like support for this is introduced in recent versions of 'binary' as well

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-28 Thread Nicolas Trangez
On Wed, 2013-02-27 at 07:49 +0100, Vincent Hanquez wrote: On Mon, Feb 25, 2013 at 01:30:40PM +0100, Nicolas Trangez wrote: ... I've been looking at the same thing lately, and i've been quite surprised, to say the least, by the usual go-to packages (cereal, binary). Performance wise this is

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-28 Thread Andrew Cowie
On Mon, 2013-02-25 at 11:59 -0800, Johan Tibell wrote: Simon's builder (originally developed in blaze-binary) has been merged into the bytestring package. I've been meaning to ask: does this mean that ByteString's concat and append functions will now be implemented in terms of Builder

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-27 Thread Johan Tibell
On Tue, Feb 26, 2013 at 11:17 PM, Vincent Hanquez t...@snarc.org wrote: On Mon, Feb 25, 2013 at 11:59:42AM -0800, Johan Tibell wrote: - cereal can output a strict bytestring (runPut) or a lazy one (runPutLazy), whilst binary only outputs lazy ones (runPut) The lazy one is more

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-26 Thread Vincent Hanquez
On Mon, Feb 25, 2013 at 01:30:40PM +0100, Nicolas Trangez wrote: All, In order to implement some network protocol clients recently, I needed binary serialization of commands and deserialization of responses ('Command - ByteString' and 'ByteString - Response' functions, preferably for both

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-26 Thread Vincent Hanquez
On Mon, Feb 25, 2013 at 11:59:42AM -0800, Johan Tibell wrote: - cereal can output a strict bytestring (runPut) or a lazy one (runPutLazy), whilst binary only outputs lazy ones (runPut) The lazy one is more general and you can use toStrict (from bytestring) to get a strict ByteString from

[Haskell-cafe] The state of binary (de)serialization

2013-02-25 Thread Nicolas Trangez
All, In order to implement some network protocol clients recently, I needed binary serialization of commands and deserialization of responses ('Command - ByteString' and 'ByteString - Response' functions, preferably for both strict as well as lazy ByteStrings). My go-to packages have always been

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-25 Thread Johan Tibell
On Mon, Feb 25, 2013 at 4:30 AM, Nicolas Trangez nico...@incubaid.comwrote: - cereal supports chunk-based 'partial' parsing (runGetPartial). It looks like support for this is introduced in recent versions of 'binary' as well (runGetIncremental) Yes. Binary now support an incremental

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-25 Thread Ozgun Ataman
On Monday, February 25, 2013 at 2:59 PM, Johan Tibell wrote: On Mon, Feb 25, 2013 at 4:30 AM, Nicolas Trangez nico...@incubaid.com (mailto:nico...@incubaid.com) wrote: - cereal supports chunk-based 'partial' parsing (runGetPartial). It looks like support for this is introduced in recent

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-25 Thread Alexander Solla
On Mon, Feb 25, 2013 at 11:59 AM, Johan Tibell johan.tib...@gmail.comwrote: There are some blog posts and comments out there about merging cereal and binary, is this what's the goal/going on (cfr runGetIncremental)? It's most definitely the goal and it's basically done. The only thing I

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-25 Thread Johan Tibell
On Mon, Feb 25, 2013 at 4:51 PM, Alexander Solla alex.so...@gmail.comwrote: On Mon, Feb 25, 2013 at 11:59 AM, Johan Tibell johan.tib...@gmail.comwrote: There are some blog posts and comments out there about merging cereal and binary, is this what's the goal/going on (cfr runGetIncremental)?

Re: [Haskell-cafe] The state of binary (de)serialization

2013-02-25 Thread Alexander V Vershilov
That sounds reasonable. If someone sends a pull request Lennart or I will review and merge it. Doesn't binary already have it? http://hackage.haskell.org/packages/archive/binary/0.6.4.0/doc/html/Data-Binary.html#g:3 On 26 February 2013 05:06, Johan Tibell johan.tib...@gmail.com wrote: On