jodersky / yamlesque

Reads like yaml, writes like yaml; it must be yaml!

GitHub

Build Status

yamlesque

Pure Scala YAML parsing.

As the name suggests, "yam-el-esque" is a Scala implementation of the most frequently used YAML features. It takes inspiration from Spray-JSON and aims to provide an idiomatic API that is cross-platform and has a minimal set of dependencies.

Getting Started

Include yamlesque into a project. In sbt, this can be done with:

libraryDependencies += "io.crashbox" %% "yamlesque" % "<latest_tag>"

Parse some YAML

import yamlesque._

val text = s"""|name: yamlesque
               |description: a YAML library for scala
               |authors:
               |  - name: Jakob Odersky
               |    id: jodersky
               |  - name: Another
               |""".stripMargin

// parse yaml to a type safe representation
val yaml = text.parseYaml

Integration with Spray-JSON

TODO

Integration with Akka-HTTP

TODO

YAML Conformance

Yamlesque does not strictly implement all features as defined in YAML 1.2, however support should be sufficient for most regular documents. Pull requests with additional feature implementations are always welcome!

The current feature restrictions are:

  • always assumes utf-8 is used
  • anchors and references are not supported
  • tags are not supported
  • flow-styles (aka inline JSON) aren't supported
  • only single-line literals are allowed (no > or | blocks)