aeson-yaml: Output any Aeson value as YAML (pure Haskell library)

[ bsd3, json, library, text, web, yaml ] [ Propose Tags ]

This library exposes functions for encoding any Aeson value as YAML. There is also support for encoding multiple values into YAML "documents".

This library is pure Haskell, and does not depend on C FFI with libyaml. It is also licensed under the BSD3 license.

[Skip to Readme]
Versions [faq],,,,,
Change log
Dependencies aeson (>= && <1.5), aeson-yaml, base (>= && <5), bytestring (>= && <0.11), text (>=0.1 && <1.3), unordered-containers (>= && <0.3), vector (>=0.1 && <0.13) [details]
License BSD-3-Clause
Copyright 2019 Clovyr LLC
Author Patrick Nielsen
Category Text, Web, JSON, YAML
Home page
Bug tracker
Source repo head: git clone
Uploaded by patrick at Tue Oct 15 03:26:26 UTC 2019
Distributions NixOS:
Executables json-to-yaml
Downloads 443 total (182 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]



Build the binaries


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for aeson-yaml-

[back to package description]


BSD3-licensed, pure Haskell library to encode any Aeson value as YAML.


import qualified Data.Aeson.Yaml as Aeson.Yaml

Aeson.Yaml.encode :: ToJSON a => a -> LazyByteString

-- To encode multiple values, separated by '---' (YAML documents),
-- use `encodeDocuments`.
Aeson.Yaml.encodeDocuments :: ToJSON a => [a] -> LazyByteString

-- To encode values of different types, use `toJSON` from `Data.Aeson`
-- like so:
encodeDocuments [toJSON x, toJSON y, toJSON z]

See bin/JsonToYaml.hs for a simple command-line application using this library.






This library does not depend on any external YAML library with C bindings, like yaml, or a restrictive license, like HsYaml (GPLv3). Note, though, that this library can only be used for encoding, not decoding.

This library also works with GHCJS and Eta.