HsYAML is a YAML 1.2 parser implementation for Haskell.
Pure Haskell implementation with small dependency footprint and emphasis on strict compliance with the YAML 1.2 specification.
Direct decoding to native Haskell types via (
aeson-inspired) typeclass-based API (see
Support for constructing custom YAML node graph representation (including support for cyclic YAML data structures).
Support for the standard (untyped) Failsafe, (strict) JSON, and (flexible) Core "schemas" providing implicit typing rules as defined in the YAML 1.2 specification (including support for user-defined custom schemas).
Event-based API resembling LibYAML's Event-based API (see
Low-level API access to lexical token-based scanner (see
- Tolerate BOM at each
l-document-prefix(rather than only at the first one encountered in a YAML stream)
- Workaround broken
mtl-2.2.2bundled in GHC 8.4.1 (#1)
- Relax to GPL-2.0-or-later
- Reject (illegal) non-scalar code-points in UTF-32 streams
- Tolerate BOM at start of stream
- Disambiguate choice in
l-any-documentproduction regarding token separation of
c-indentation-indicator(n)grammar production when auto-detecting indentation in the presence of empty leading lines; also reject (illegal) auto-indent-level scalars with leading more-indented all-space lines
- Complete character escape rules for double-quoted scalars
- Minor optimizations
Data.YAMLmodule promoted from
- First version. Released on an unsuspecting world.