<?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">Protocol Buffers – Haskell – Aelve Guide</title><id>https://guide.aelve.com/haskell/feed/category/j4fyc7t7</id><updated>2016-08-24T18:14:15Z</updated><link xmlns:ns="http://www.w3.org/2005/Atom" ns:href="https://guide.aelve.com/haskell/feed/category/j4fyc7t7"/><entry><id>c3qi9iwm</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">protobuf-native</title><updated>2016-08-24T18:14:15Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;protobuf-native&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/protobuf-native&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Supports proto3 (and probably proto2 as well) as it uses the official protoc implementation by Google.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Reuses Google&#39;s original C++ code and there original tool, protoc.&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;low-level interface&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Does not auto-generate Haskell data structures (only checks them).&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;protobuf structures are not Haskell data structures, need to convert.&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/protocol-buffers-j4fyc7t7#item-c3qi9iwm"/></entry><entry><id>nb48vfic</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">proto-lens-protoc</title><updated>2016-08-24T18:06:53Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;proto-lens-protoc&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/proto-lens-protoc&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Generates definitions from .proto files for use with proto-lens.&lt;/p&gt;
&lt;p&gt;Supported .proto format version: ?&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/protocol-buffers-j4fyc7t7#item-nb48vfic"/></entry><entry><id>l0t3etz5</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">protobuf-simple</title><updated>2016-08-24T18:06:08Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;protobuf-simple&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/protobuf-simple&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Simple package for encoding and decoding protocol buffers. Can auto-generate message data structure definition from .proto files through an own implementation of protoc.&lt;/p&gt;
&lt;p&gt;Supports proto2.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Supports .proto files through own implementation of protoc.&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;Minimal interface that is simple to grasp.&lt;/li&gt;&lt;/p&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/protocol-buffers-j4fyc7t7#item-l0t3etz5"/></entry><entry><id>f861xj3y</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">proto-lens</title><updated>2016-08-24T18:04:49Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;proto-lens&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/proto-lens&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Lens based protocol buffer interaction for Haskell, developed by Google but is not an &lt;a href=&#34;http://https://developers.google.com/protocol-buffers/&#34;&gt;official protocol buffers implementation&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;Lens based protocol buffers.&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;support for .proto files through proto-lens-protoc&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;Lacking tutorial-esque documentation.&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/protocol-buffers-j4fyc7t7#item-f861xj3y"/></entry><entry><id>pshstquk</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">protobuf</title><updated>2016-08-24T17:43:21Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;protobuf&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/protobuf&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Protocol Buffers are defined through special data structures equivalent to .proto files. Encoding and decoding is done through type classes that can be derived by GHC.Generics.&lt;/p&gt;
&lt;h2&gt;Pros&lt;/h2&gt;&lt;ul&gt;&lt;p&gt;&lt;li&gt;No preprocessor required&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;Only a (useful) subset of the protocol buffers specification&lt;/li&gt;&lt;/p&gt;&lt;p&gt;&lt;li&gt;No support for .proto files (planned though).&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/protocol-buffers-j4fyc7t7#item-pshstquk"/></entry><entry><id>ixwshz56</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">protocol-buffers</title><updated>2016-08-24T17:30:12Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;protocol-buffers&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/protocol-buffers&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Pure haskell reimplementation of Google&#39;s C++ protocol buffers implementation.&lt;/p&gt;
&lt;p&gt;Allows users to read and write the binary format as well as deal with the structures generated by hprotoc.&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/protocol-buffers-j4fyc7t7#item-ixwshz56"/></entry><entry><id>twqnmyhx</id><title xmlns:ns="http://www.w3.org/2005/Atom" ns:type="text">hprotoc</title><updated>2016-08-24T17:24:04Z</updated><content xmlns:ns="http://www.w3.org/2005/Atom" ns:type="html">&lt;h1&gt;  &lt;span class=&#34;item-name&#34;&gt;hprotoc&lt;/span&gt;

  
  (&lt;a href=&#34;https://hackage.haskell.org/package/hprotoc&#34;&gt;Hackage&lt;/a&gt;)
&lt;/h1&gt;&lt;p&gt;Auto-generates haskell source trees of message data structures from .proto files for use with    protocol-buffers.&lt;/p&gt;
&lt;p&gt;Supports proto2.&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/protocol-buffers-j4fyc7t7#item-twqnmyhx"/></entry></feed>