protobuf-simple-0.1.0.2: protobuf-simple.cabal
-- 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 <mrr@sru-systems.com>
author: Martijn Rijkeboer <mrr@sru-systems.com>
maintainer: Martijn Rijkeboer <mrr@sru-systems.com>
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