-- Initial protobuf-simple.cabal generated by cabal init. For further -- documentation, see http://haskell.org/cabal/users-guide/ name: protobuf-simple synopsis: Simple Protocol Buffers library (proto2) version: 0.1.0.2 homepage: https://github.com/sru-systems/protobuf-simple license: MIT license-file: LICENSE copyright: (c) 2015-2016 Martijn Rijkeboer author: Martijn Rijkeboer maintainer: Martijn Rijkeboer category: Data stability: experimental tested-with: GHC == 7.10.3 build-type: Simple cabal-version: >= 1.10 extra-source-files: README.md , data/*.bin , data/Types.proto description: . An Haskell implementation of Google's Protocol Buffers version 2 with an emphasis on simplicity. The implementation consists of a library for encoding and decoding of data and the `protoc` executable for generating Haskell types from proto files. In fact, the types that are used in the tests are generated with the following command: . > $ protoc data/Types.proto . In the example below, the `CustomType` is a Haskell type that was generated with the `protoc` executable. The `encCustomType` function encodes a CustomType into a ByteString. The `decCustomType` function decodes a ByteString into either a CustomType or an error. . > module Codec where > > import Data.ByteString.Lazy (ByteString) > import Data.ProtoBuf (decode, encode) > import Types.CustomType (CustomType(..)) > > encCustomType :: CustomType -> ByteString > encCustomType = encode > > decCustomType :: ByteString -> Either String CustomType > decCustomType = decode . The library exposes two modules, "Data.ProtoBuf", which is used for encoding and decoding and "Data.ProtoBufInt", which is an internal module that is used by the generated types. library hs-source-dirs: src exposed-modules: Data.ProtoBuf , Data.ProtoBufInt other-modules: Data.ProtoBuf.Default , Data.ProtoBuf.FieldNumber , Data.ProtoBuf.Mergeable , Data.ProtoBuf.Required , Data.ProtoBuf.WireEnum , Data.ProtoBuf.WireFormat , Data.ProtoBuf.WireMessage , Data.ProtoBuf.WireTag , Data.ProtoBuf.WireType , Data.ProtoBuf.ZigZag build-depends: base >= 4 && < 5 , binary >= 0.7 , bytestring >= 0.9 , containers >= 0.4 , data-binary-ieee754 >= 0.4 , mtl >= 2.0 , text >= 0.11 default-language: Haskell2010 ghc-options: -Wall executable protoc hs-source-dirs: app, src main-is: Parser.hs other-modules: Parser.CaseUtils , Parser.CodeInfo , Parser.EnumDesc , Parser.EnumGenerator , Parser.EnumValueDesc , Parser.FieldDesc , Parser.FileDesc , Parser.FileWriter , Parser.Generator , Parser.GeneratorUtils , Parser.Label , Parser.MessageDesc , Parser.MessageGenerator , Parser.OptimizeMode , Parser.ProtoParser , Parser.Type build-depends: base , containers , directory , filepath , mtl , parsec , split , text default-language: Haskell2010 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N test-suite protobuf-simple-test type: exitcode-stdio-1.0 hs-source-dirs: test, src main-is: Spec.hs other-modules: Data.ProtoBuf , Data.ProtoBuf.Default , Data.ProtoBuf.FieldNumber , Data.ProtoBuf.Mergeable , Data.ProtoBuf.Required , Data.ProtoBuf.WireEnum , Data.ProtoBuf.WireFormat , Data.ProtoBuf.WireMessage , Data.ProtoBuf.WireTag , Data.ProtoBuf.WireType , Data.ProtoBuf.ZigZag , Data.ProtoBuf.ZigZagSpec , Data.ProtoBufInt , Data.ProtoBufSpec , Parser.CaseUtils , Parser.EnumDesc , Parser.EnumValueDesc , Parser.FieldDesc , Parser.FileDesc , Parser.Label , Parser.MessageDesc , Parser.OptimizeMode , Parser.ProtoParser , Parser.ProtoParserSpec , Parser.Type , Types.BoolList , Types.BoolListPacked , Types.BoolMsg , Types.BoolOptMsg , Types.BytesList , Types.BytesMsg , Types.BytesOptMsg , Types.DoubleList , Types.DoubleListPacked , Types.DoubleMsg , Types.DoubleOptMsg , Types.Enum , Types.EnumList , Types.EnumListPacked , Types.EnumMsg , Types.EnumOptMsg , Types.Fixed32List , Types.Fixed32ListPacked , Types.Fixed32Msg , Types.Fixed32OptMsg , Types.Fixed64List , Types.Fixed64ListPacked , Types.Fixed64Msg , Types.Fixed64OptMsg , Types.FloatList , Types.FloatListPacked , Types.FloatMsg , Types.FloatOptMsg , Types.Int32List , Types.Int32ListPacked , Types.Int32Msg , Types.Int32OptMsg , Types.Int64List , Types.Int64ListPacked , Types.Int64Msg , Types.Int64OptMsg , Types.Message , Types.MessageList , Types.MessageMsg , Types.MessageOptMsg , Types.SFixed32List , Types.SFixed32ListPacked , Types.SFixed32Msg , Types.SFixed32OptMsg , Types.SFixed64List , Types.SFixed64ListPacked , Types.SFixed64Msg , Types.SFixed64OptMsg , Types.SInt32List , Types.SInt32ListPacked , Types.SInt32Msg , Types.SInt32OptMsg , Types.SInt64List , Types.SInt64ListPacked , Types.SInt64Msg , Types.SInt64OptMsg , Types.StringList , Types.StringMsg , Types.StringOptMsg , Types.UInt32List , Types.UInt32ListPacked , Types.UInt32Msg , Types.UInt32OptMsg , Types.UInt64List , Types.UInt64ListPacked , Types.UInt64Msg , Types.UInt64OptMsg build-depends: QuickCheck , base , binary , bytestring , containers , data-binary-ieee754 , filepath , hspec , parsec , protobuf-simple , quickcheck-instances , split , text default-language: Haskell2010 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N source-repository head type: git location: https://github.com/sru-systems/protobuf-simple