A YAML parser for Elixir that wraps the native Erlang yamerl library, providing full YAML 1.2 support.
YamlElixir is a YAML parser for the Elixir programming language that wraps the native Erlang yamerl library. It provides full YAML 1.2 compliance, allowing developers to parse YAML strings and files directly into Elixir data structures like maps, lists, and atoms. The library solves the need for a reliable, feature-complete YAML parsing solution within the Elixir ecosystem.
Elixir developers who need to parse YAML configuration files, data interchange formats, or structured documents in their applications, especially those already using or familiar with Erlang's yamerl.
Developers choose YamlElixir because it leverages the mature, native Erlang yamerl parser for reliability and full YAML 1.2 support, while adding Elixir-specific ergonomics like sigils, atom autodetection, and keyword list conversion. It's a trusted, hex-packaged library with an active community.
Yaml parser for Elixir based on native Erlang implementation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Builds on the battle-tested yamerl parser, ensuring full YAML 1.2 compliance and reliability, as highlighted in the philosophy section.
Provides a ~y sigil for inline YAML and simple functions like read_from_string, making it intuitive for Elixir developers to integrate YAML parsing.
Resolves YAML anchors and aliases with the merge_anchors option, handling complex data structures as demonstrated in the README examples.
Can be used in Mix tasks by ensuring the application is started, facilitating build and configuration workflows in Elixir projects.
Enabling atom conversion with atoms: true risks memory leaks if used with untrusted input, as atoms are not garbage collected in BEAM, per the README warning.
Keyword list tags do not work with YAML flow style syntax, restricting compact YAML formats for certain conversions, as admitted in the README.
Advanced features like custom atom or keyword list tags require direct Erlang calls via :yamerl_app.set_param, adding non-intuitive complexity for Elixir developers.