For package maintainers and hackage trustees
Candidates
| Versions[RSS] | 0.1.0.0,0.1.1.0,0.1.2.0,0.1.3.0,0.1.3.1,0.1.4.0 |
|---|---|
| Dependencies | avro (>=0.5.1),base (>=4.12 && <5),containers,directory,filepath,megaparsec,text,vector [details] |
| License | Apache-2.0 |
| Copyright | Copyright © 2019-2022 <http://47deg.com 47 Degrees> |
| Author | Flavio Corpa |
| Maintainer | flaviocorpa@gmail.com |
| Uploaded | byFlavioCorpa at2022-01-20T14:59:34Z |
| Category | Network |
| Home page | https://github.com/kutyel/avro-parser-haskell#readme |
| Distributions | LTSHaskell:0.1.4.0, Stackage:0.1.4.0 |
| Reverse Dependencies | 1 direct, 4 indirect [details] |
| Downloads | 2078 total (26 in the last 30 days) |
| Rating | 2.0 (votes: 1)[estimated byBayesian average] |
| Your Rating |
|
| Status | Docs available[build log] Last success reported on 2022-01-20[all 1 reports] |
Language definition and parser for AVRO (.avdl) files.
#!/usr/bin/env stack-- stack --resolver lts-18.19 script --package language-avro,pretty-simplemodule Main whereimport Language.Avro.Parser (readWithImports)import Text.Pretty.Simple (pPrint)main :: IO ()main = readWithImports "test" "PeopleService.avdl" >>= either putStrLn pPrint-- λ>-- Protocol-- { ns = Just-- ( Namespace-- [ "example"-- , "seed"-- , "server"-- , "protocol"-- , "avro"-- ]-- )-- , pname = "PeopleService"-- , imports = [ IdlImport "People.avdl" ]-- , types =-- [ Record-- { name = "Person"-- , aliases = []-- , doc = Nothing-- , order = Nothing-- , fields =-- [ Field-- { fldName = "name"-- , fldAliases = []-- , fldDoc = Nothing-- , fldOrder = Nothing-- , fldType = String { logicalTypeS = Nothing }-- , fldDefault = Nothing-- }-- , Field-- { fldName = "age"-- , fldAliases = []-- , fldDoc = Nothing-- , fldOrder = Nothing-- , fldType = Int { logicalTypeI = Nothing }-- , fldDefault = Nothing-- }-- ]-- }-- , Record-- { name = "NotFoundError"-- , aliases = []-- , doc = Nothing-- , order = Nothing-- , fields =-- [ Field-- { fldName = "message"-- , fldAliases = []-- , fldDoc = Nothing-- , fldOrder = Nothing-- , fldType = String { logicalTypeS = Nothing }-- , fldDefault = Nothing-- }-- ]-- }-- , Record-- { name = "DuplicatedPersonError"-- , aliases = []-- , doc = Nothing-- , order = Nothing-- , fields =-- [ Field-- { fldName = "message"-- , fldAliases = []-- , fldDoc = Nothing-- , fldOrder = Nothing-- , fldType = String { logicalTypeS = Nothing }-- , fldDefault = Nothing-- }-- ]-- }-- , Record-- { name = "PeopleRequest"-- , aliases = []-- , doc = Nothing-- , order = Nothing-- , fields =-- [ Field-- { fldName = "name"-- , fldAliases = []-- , fldDoc = Nothing-- , fldOrder = Nothing-- , fldType = String { logicalTypeS = Nothing }-- , fldDefault = Nothing-- }-- ]-- }-- , Record-- { name = "PeopleResponse"-- , aliases = []-- , doc = Nothing-- , order = Nothing-- , fields =-- [ Field-- { fldName = "result"-- , fldAliases = []-- , fldDoc = Nothing-- , fldOrder = Nothing-- , fldType = Union-- { options =-- [ NamedType "Person"-- , NamedType "NotFoundError"-- , NamedType "DuplicatedPersonError"-- ]-- }-- , fldDefault = Nothing-- }-- ]-- }-- ]-- , messages =-- [ Method-- { mname = "getPerson"-- , args =-- [ Argument-- { atype = NamedType "example.seed.server.protocol.avro.PeopleRequest"-- , aname = "request"-- }-- ]-- , result = NamedType "example.seed.server.protocol.avro.PeopleResponse"-- , throws = Null-- , oneway = False-- }-- ]-- }⚠️ Warning:readWithImports only works right now if the import type is"idl"!