Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. yamerl

yamerl

BSD-2-ClauseErlangv0.10.0

A pure Erlang application for parsing YAML 1.2 and JSON documents with no external dependencies.

GitHubGitHub
212 stars59 forks0 contributors

What is yamerl?

yamerl is a YAML 1.2 and JSON parser written in pure Erlang. It allows developers to parse and construct data from YAML and JSON documents without any external dependencies, providing both simple and detailed output modes for flexible data handling.

Target Audience

Erlang and Elixir developers who need to parse YAML or JSON configuration files, data streams, or serialized documents within their applications.

Value Proposition

Developers choose yamerl for its dependency-free, pure Erlang implementation that ensures portability and safety, along with support for both YAML and JSON parsing in a single library.

Overview

YAML 1.2 and JSON parser in pure Erlang

Use Cases

Best For

  • Parsing YAML configuration files in Erlang/OTP applications
  • Handling JSON data within Elixir projects via Erlang interoperability
  • Streaming large YAML or JSON documents incrementally
  • Integrating YAML/JSON parsing in environments where external dependencies are restricted
  • Converting YAML documents to detailed Erlang records with metadata
  • Processing multi-document YAML streams in server-side Erlang systems

Not Ideal For

  • High-throughput systems requiring native-code parsing speed for massive datasets
  • Projects needing full YAML 1.3 compliance or advanced features like schema validation
  • Teams prioritizing extensive IDE integrations or graphical tooling for data inspection
  • Applications where JSON parsing is the sole requirement and more optimized, JSON-specific libraries are preferred

Pros & Cons

Pros

Dependency-Free Portability

Pure Erlang implementation with no NIFs or external dependencies, ensuring it runs on any Erlang/OTP platform without compatibility issues.

Dual Format Support

Parses both YAML 1.1/1.2 and JSON from strings, files, or streams, reducing library bloat in mixed-data environments.

Flexible Output Modes

Offers simple Erlang structures for quick integration and detailed records with metadata like line/column for debugging or precise error handling.

Streaming for Large Documents

Provides a chunk-based API for incremental parsing, allowing handling of large files without loading entire documents into memory.

Cons

Performance Overheads

Pure Erlang implementation may be slower than parsers using native code (NIFs) for CPU-intensive parsing tasks, impacting high-volume scenarios.

Manual Application Start Required

Users must explicitly call application:start(yamerl) before use, an extra step that can lead to runtime errors if omitted, unlike some auto-starting libraries.

Sparse Ecosystem and Tooling

As a niche library, it lacks extensive community plugins, IDE support, or third-party tools compared to more mainstream parsers in other languages.

Frequently Asked Questions

Quick Stats

Stars212
Forks59
Contributors0
Open Issues1
Last commit1 month ago
CreatedSince 2012

Tags

#parsing#elixir#data-serialization#yaml#yaml-1.2#yaml-parser#stream-parsing#erlang#parser-library#json-parser

Built With

E
Erlang
O
OTP

Included in

Elixir13.1k
Auto-fetched 1 day ago

Related Projects

yaml_elixiryaml_elixir

Yaml parser for Elixir based on native Erlang implementation

Stars180
Forks38
Last commit1 month ago
fast_yamlfast_yaml

Fast YAML native library for Erlang / Elixir

Stars53
Forks15
Last commit4 months ago
ymlrymlr

A YAML encoder for Elixir.

Stars25
Forks10
Last commit1 month ago
yomelyomel

読める、読めるぞぉ!!

Stars6
Forks1
Last commit10 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub