BSD-3-Clause licensed by Michael Snoyman, Anton Ageev, Kirill Simonov
Maintained by Michael Snoyman
This version can be pinned in stack with:yaml-0.10.4.0@sha256:faaef7251bf05095ab34a3e716cfb4aaa3775aa23e38471ab8e8f44e59040b8f,5775

Module documentation for 0.10.4.0

  • Data
    • Data.Yaml
      • Data.Yaml.Aeson
      • Data.Yaml.Builder
      • Data.Yaml.Config
      • Data.Yaml.Include
      • Data.Yaml.Internal
      • Data.Yaml.Parser
      • Data.Yaml.Pretty
      • Data.Yaml.TH
  • Text
    • Text.Libyaml

yaml

Build Status Build status

Provides support for parsing and emitting Yaml documents.

This package includes the full libyaml C library version 0.2.1 by Kirill Simonov in the package so you don’t need to worry about any non-Haskell dependencies.

The package is broken down into two primary modules. Data.Yaml provides a high-level interface based around the JSON datatypes provided by the aeson package. Text.Libyaml provides a lower-level, streaming interface. For most users, Data.Yaml is recommended.

Examples

Usage examples can be found in the Data.Yaml documentation or in the examples directory.

Additional modules

  • Data.Yaml.Include supports adding !include directives to your YAML files.
  • Data.Yaml.Builder and Data.Yaml.Parser allow more fine-grained control of parsing an rendering, as opposed to just using the aeson typeclass and datatype system for parsing and rendering.
  • Data.Yaml.Aeson is currently a re-export of Data.Yaml to explicitly choose to use the aeson-compatible API.

Changes

ChangeLog for yaml

0.10.4.0

  • Add decodeMarked and decodeFileMarked functions to Text.Libyaml, and extend native bindings to extract mark information. #157

0.10.3.0

  • Add support for anchors and aliases to Data.Yaml.Builder #155
  • Fix test suite for 32 bit machines #158

0.10.2.0

  • Add EncodeOptions and FormatOptions to control the style of the encoded YAML. #153
  • Default to using literal style for multiline strings #152

0.10.1.1

  • Correctly declare libyaml dependency on system-libyaml flag #151

0.10.1

  • Avoid incurring a semigroups dependency on recent GHCs.
  • Fix a space leak that was introduced with 0.10.0 #147

0.10.0

  • Add decodeFileWithWarnings which returns warnings for duplicate fields

0.9.0

  • Expose style and tags on mappings and sequences in Text.Libyaml #141

0.8.32

  • Escape keys as necessary #137
  • Support hexadecimal and octal number values #135
  • More resilient isNumeric (should reduce cases of unneeded quoting)
  • hpackify
  • src subdir

0.8.31.1

0.8.31

  • Add decodeThrow and decodeFileThrow convenience functions.
  • Upgrade libyaml versions
  • Deprecate decode and decodeEither

0.8.30

  • Removed AppSettings mentioned in loadYamlSettings error message.

0.8.29

  • Deprecated decodeFile #129
  • Turn off executables by default #103

0.8.28

  • Add Data.Yaml.TH.yamlQQ

0.8.27

  • Support conduit 1.3

0.8.26

  • Add Semigroup instance #123

0.8.25.2

  • Use throwM instead of monadThrow

0.8.25.1

  • Drop aeson-qq dep (incompatible with Stackage Nightly)

0.8.25

  • Tweaks to the executable yaml2json #119:
    • Add command-line option -h and --help to show help message
    • Error messages are now written to stderr instead of stdout

0.8.24

  • New encodePretty option setConfDropNull to drop null values from objects #116

0.8.23.3

  • Avoid over-escaping * #113

0.8.23.2

  • Update libyaml #110

0.8.23.1

  • Update CPP MIN_VERSION_* checks #109

0.8.23

  • Re-export the with helpers from aeson

0.8.22.1

  • Make numeric string detection slightly smarter so, e.g., . does not get quoted

0.8.22

  • Update to libyaml hosted on Github #105

0.8.21.2

  • Fix wrong file not found exception in Data.Yaml.Include with pre-1.2.3.0 directory #104

0.8.21.1

  • Add missing test files #102

0.8.21

  • Decode empty inputs as Null #101

0.8.20

  • Upgrade to libyaml 0.1.7

0.8.19.0

  • Add Data.Yaml.TH module

0.8.18.7

  • Add O_TRUNC when opening files

0.8.18.6

  • s/fdopen/_fdopen on Windows #96

0.8.18.5

  • Properly fix previous bug (fixes #94)

0.8.18.4

  • Remove file with non-ASCII name due to Stack/cabal-install/Hackage restrictions (see #92)

0.8.18.2

  • Handle non-ASCII filenames correctly on Windows #91

0.8.18.1

  • Improve prettyPrintParseException when context is empty #89

0.8.18

  • Switched yaml decode function for config file readers in Data.Yaml.Config to the one from Data.Yaml.Include that supports !include syntax.

0.8.17.2

  • Fix pretty-printing order of UnexpectedEvent’s fields (fixes #84) #85

0.8.17.1

  • Avoid bug in Cabal #83

0.8.17

  • loadYamlSettingsArgs

0.8.16.1

  • Slight doc improvement

0.8.16

Add env variable parsing. loadYamlSettings can read config values from the environment with Yaml that specifies an env var. The syntax is

var: _env:ENV_VAR:default

0.8.15.3

  • Give a warning when compiling with GHCJS

0.8.15.2

  • Canonicalise Monad instances #76

0.8.15.1

  • Compile with aeson below 0.7 #70

0.8.15

  • Parse Scientific directly, avoiding loss in precision. #68

0.8.14

  • Pretty print improvements for exceptions #67

0.8.13

  • Pretty module #66

0.8.12

  • Proper handling of String "+123" #64

0.8.11

  • Function to print prettier parse exceptions #59

0.8.10

Add the Data.Yaml.Include module