category feedProtocol BuffersPopular data formatseditdelete







Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.

Protocol buffers define a binary format for storing arbitrary data structures as well as a .proto file format that defines the entries stored in such a file.

The Haskell libraries listed here all support encoding and decoding the binary messages and some are accompanied by a tool to auto-generate message data structure code from .proto files.

edit description
or press Ctrl+Enter to savemarkdown supported
#
hprotoc (Hackage)
other
move item up move item down edit item info delete item
Summary edit summary

Auto-generates haskell source trees of message data structures from .proto files for use with protocol-buffers.

Supports proto2.

Summary quit editing summary
Prosedit prosquit editing pros

    press Ctrl+Enter or Enter to addmarkdown supportededit off
    Consedit consquit editing cons

      press Ctrl+Enter or Enter to addmarkdown supportededit off
      Notes
      collapse notesedit notes

      <notes are empty>

      add something!

      #
      protocol-buffers (Hackage)
      other
      move item up move item down edit item info delete item
      Summary edit summary

      Pure haskell reimplementation of Google's C++ protocol buffers implementation.

      Allows users to read and write the binary format as well as deal with the structures generated by hprotoc.

      Summary quit editing summary
      Prosedit prosquit editing pros

        press Ctrl+Enter or Enter to addmarkdown supportededit off
        Consedit consquit editing cons

          press Ctrl+Enter or Enter to addmarkdown supportededit off
          Notes
          collapse notesedit notes

          <notes are empty>

          add something!

          #
          protobuf (Hackage)
          other
          move item up move item down edit item info delete item
          Summary edit summary

          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.

          Summary quit editing summary
          Prosedit prosquit editing pros
          • No preprocessor required
            move trait up move trait down edit trait delete trait

          press Ctrl+Enter or Enter to addmarkdown supportededit off
          Consedit consquit editing cons
          • Only a (useful) subset of the protocol buffers specification
            move trait up move trait down edit trait delete trait
          • No support for .proto files (planned though).
            move trait up move trait down edit trait delete trait

          press Ctrl+Enter or Enter to addmarkdown supportededit off
          Notes
          collapse notesedit notes

          <notes are empty>

          add something!

          #
          protobuf-simple (Hackage)
          other
          move item up move item down edit item info delete item
          Summary edit summary

          Simple package for encoding and decoding protocol buffers. Can auto-generate message data structure definition from .proto files through an own implementation of protoc.

          Supports proto2.

          Summary quit editing summary
          Prosedit prosquit editing pros
          • Supports .proto files through own implementation of protoc.
            move trait up move trait down edit trait delete trait
          • Minimal interface that is simple to grasp.
            move trait up move trait down edit trait delete trait

          press Ctrl+Enter or Enter to addmarkdown supportededit off
          Consedit consquit editing cons

            press Ctrl+Enter or Enter to addmarkdown supportededit off
            Notes
            collapse notesedit notes

            <notes are empty>

            add something!

            #
            proto-lens (Hackage)
            other
            move item up move item down edit item info delete item
            Summary edit summary

            Lens based protocol buffer interaction for Haskell, developed by Google but is not an official protocol buffers implementation.

            Summary quit editing summary
            Prosedit prosquit editing pros
            • Lens based protocol buffers.
              move trait up move trait down edit trait delete trait
            • support for .proto files through proto-lens-protoc
              move trait up move trait down edit trait delete trait

            press Ctrl+Enter or Enter to addmarkdown supportededit off
            Consedit consquit editing cons
            • Lacking tutorial-esque documentation.
              move trait up move trait down edit trait delete trait

            press Ctrl+Enter or Enter to addmarkdown supportededit off
            Notes
            collapse notesedit notes

            <notes are empty>

            add something!

            #
            proto-lens-protoc (Hackage)
            other
            move item up move item down edit item info delete item
            Summary edit summary

            Generates definitions from .proto files for use with proto-lens.

            Supported .proto format version: ?

            Summary quit editing summary
            Prosedit prosquit editing pros

              press Ctrl+Enter or Enter to addmarkdown supportededit off
              Consedit consquit editing cons

                press Ctrl+Enter or Enter to addmarkdown supportededit off
                Notes
                collapse notesedit notes

                <notes are empty>

                add something!

                #
                protobuf-native (Hackage)
                other
                move item up move item down edit item info delete item
                Summary edit summary

                Supports proto3 (and probably proto2 as well) as it uses the official protoc implementation by Google.

                Summary quit editing summary
                Prosedit prosquit editing pros
                • Reuses Google's original C++ code and there original tool, protoc.
                  move trait up move trait down edit trait delete trait

                press Ctrl+Enter or Enter to addmarkdown supportededit off
                Consedit consquit editing cons
                • low-level interface
                  move trait up move trait down edit trait delete trait
                • Does not auto-generate Haskell data structures (only checks them).
                  move trait up move trait down edit trait delete trait
                • protobuf structures are not Haskell data structures, need to convert.
                  move trait up move trait down edit trait delete trait

                press Ctrl+Enter or Enter to addmarkdown supportededit off
                Notes
                collapse notesedit notes

                <notes are empty>

                add something!