hedn: EDN parsing and encoding

[ bsd3, data, library ] [ Propose Tags ]

A EDN parsing and encoding library.

Based on "specs" published at https://github.com/edn-format/edn.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.3.0, 0.1.4.1, 0.1.5.0, 0.1.5.1, 0.1.5.2, 0.1.6.0, 0.1.7.0, 0.1.8.1, 0.1.8.2, 0.1.9.0, 0.1.9.1, 0.2.0.0, 0.2.0.1, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.0.3, 0.3.0.4 (info)
Change log CHANGELOG.md
Dependencies base (>=4.9 && <5), containers (>=0.5.7 && <0.7), deepseq (>=1.4 && <2), deriving-compat (>=0.3.6 && <0.7), megaparsec (>=7.0 && <10), parser-combinators (>=1.0 && <2), prettyprinter (>=1.2 && <2), scientific (>=0.3 && <0.4), template-haskell (>=2.11 && <3), text (>=1.2 && <3), time (>=1.6 && <2), uuid-types (>=1.0 && <2), vector (>=0.11 && <1) [details]
License BSD-3-Clause
Copyright (c) 2019 Alexander Bondarenko
Author Alexander Bondarenko
Maintainer aenor.realm@gmail.com
Revised Revision 2 made by AlexanderBondarenko at 2023-12-28T11:25:56Z
Category Data
Source repo head: git clone https://gitlab.com/dpwiz/hedn
Uploaded by AlexanderBondarenko at 2021-11-13T13:27:12Z
Distributions LTSHaskell:0.3.0.4, NixOS:0.3.0.4, Stackage:0.3.0.4
Reverse Dependencies 4 direct, 2 indirect [details]
Downloads 11349 total (39 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
All reported builds failed as of 2021-11-13 [all 1 reports]

Readme for hedn-0.3.0.4

[back to package description]

Haskell EDN

An EDN parsing and encoding library.

Based on spec and hints published on GitHub.

Hackage: https://hackage.haskell.org/package/hedn

Stackage: https://www.stackage.org/package/hedn

Tutorial: https://dpwiz.gitlab.io/hedn

Examples

AST

(#haskell/edn example/kitchensink ; tagged symbol
 nil ; ugh..
 \space ; character
 "dynamic \"typing\"" ; string
 {:numbers ; keyword
  [42 ; integer
   42.0 ; floating
  ] ; Vector
  :bools
  #{true, false} ; Set (with optional commas)
 } ; Map
) ; List
import qualified Data.EDN as EDN
import qualified Data.Text.IO as Text

main = do
  edn <- Text.readFile "example.edn"
  either error print $ EDN.parseText "example.edn" edn
NoTag
  (List
     [ Tagged "haskell" "edn" (Symbol "example" "kitchensink")
     , NoTag Nil
     , NoTag (Character ' ')
     , NoTag (String "dynamic \"typing\"")
     , NoTag
         (Map
            (fromList
               [ ( NoTag (Keyword "bools")
                 , NoTag
                     (Set (fromList [ NoTag (Boolean False) , NoTag (Boolean True) ]))
                 )
               , ( NoTag (Keyword "numbers")
                 , NoTag (Vec [ NoTag (Integer 42) , NoTag (Floating 42.0) ])
                 )
               ]))
     ])