<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">Binary serialization – Haskell – Aelve Guide</title><id>https://guide.aelve.com/haskell/feed/category/jalql10y</id><updated>2017-04-15T10:16:13Z</updated><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/feed/category/jalql10y"/><entry><id>cj08gks2</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">flat</title><updated>2017-04-15T10:16:13Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;flat&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/flat&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-cj08gks2"/></entry><entry><id>uv1y405a</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">binary-serialise-cbor</title><updated>2017-04-15T10:15:42Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;a href=&#34;https://github.com/well-typed/binary-serialise-cbor&#34; class=&#34;item-name&#34;&gt;binary-serialise-cbor&lt;/a&gt;

&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-uv1y405a"/></entry><entry><id>oe7afun9</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">packman</title><updated>2017-04-15T10:15:07Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;packman&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/packman&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;This package provides Haskell data serialisation independent of evaluation, by accessing the Haskell heap using foreign primitive operations. Any Haskell data structure apart from mutable data structures (MVars and TVars) can be serialised and later deserialised during the same run, or loaded into a new run, of the same program (the same executable file).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-oe7afun9"/></entry><entry><id>jhzgvl4f</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">safecopy</title><updated>2016-10-07T13:07:17Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;safecopy&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/safecopy&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Serialization + automatic migrations in one package.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-jhzgvl4f"/></entry><entry><id>d87xvnp0</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">cereal-plus</title><updated>2016-09-03T15:21:14Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;cereal-plus&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/cereal-plus&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-d87xvnp0"/></entry><entry><id>vaf4j8t5</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">bytes</title><updated>2016-08-24T17:35:56Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;bytes&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/bytes&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Abstraction over binary and cereal that allows to write library independent binary (de)seriliazation code. It is also possible to add compatibility with any serialization library.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;library independent, no porting required in case of lib switch.&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;performance bottleneck in certain cases&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-vaf4j8t5"/></entry><entry><id>b3g4dtn1</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">store</title><updated>2016-06-13T14:09:00Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;store&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/store&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-b3g4dtn1"/></entry><entry><id>o9wv5wl5</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">Data.ByteString.Builder</title><updated>2016-04-14T09:43:34Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;a href=&#34;https://hackage.haskell.org/package/bytestring/docs/Data-ByteString-Builder.html&#34; class=&#34;item-name&#34;&gt;Data.ByteString.Builder&lt;/a&gt;

&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-o9wv5wl5"/></entry><entry><id>ut4bf26k</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">cereal</title><updated>2016-04-14T09:43:30Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;cereal&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/cereal&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;/ul&gt;</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-ut4bf26k"/></entry><entry><id>saiz59g5</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">binary</title><updated>2016-04-14T09:43:27Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;a href=&#34;http://1&#34; class=&#34;item-name&#34;&gt;binary&lt;/a&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/binary&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;easy to use after looking at an example or two&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;h2&gt;Cons&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;simply crashes for wrong files&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;I heard its floating-point encoding was very inefficient&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;sometimes a cause of memory consumption problems&lt;/li&gt;&lt;/p&gt;&lt;/ul&gt;&lt;h2&gt;Ecosystem&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://hackage.haskell.org/package/vector-binary-instances&#34;&gt;vector-binary-instances&lt;/a&gt;, &lt;a href=&#34;https://hackage.haskell.org/package/text-binary&#34;&gt;text-binary&lt;/a&gt; (though recent versions of &lt;a href=&#34;https://hackage.haskell.org/package/text&#34;&gt;text&lt;/a&gt; include &lt;code&gt;Binary&lt;/code&gt; instances out of the box). IEEE-574 floating point support with &lt;a href=&#34;https://hackage.haskell.org/package/binary-ieee754&#34;&gt;binary-ieee754&lt;/a&gt;. Support for odd-bit-sized integers with &lt;a href=&#34;https://hackage.haskell.org/package/binary-bits&#34;&gt;binary-bits&lt;/a&gt;.
Supported in conduits and pipes.&lt;/p&gt;
</content><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/binary-serialization-jalql10y#item-saiz59g5"/></entry></feed>