Perl6 LibYAML
A Perl 6 interface to
LibYAML, a YAML
1.1 parser and emitter.
INSTALLATION
You must get and install libyaml
first. Then you can install LibYAML with zef:
zef install LibYAML
Install from Sources
You can install this LibYAML module from source (optionally also using the
libyaml C code sources) like this:
$ git clone https://github.com/yaml/yaml-libyaml-perl6
$ git clone https://github.com/yaml/libyaml
$ (cd libyaml; make -f .makefile)
$ export LD_LIBRARY_PATH=$PWD/libyaml/src/.libs
$ cd perl6-libyaml
$ zef install .
Examples
Note: This is a parser and emitter. The interface will probably change.
If you want to load and dump YAML, take a look at
YAML.pm6.
use LibYAML;
my $parser = LibYAML::Parser.new;
my $emitter = LibYAML::Emitter.new(...options...);
Originally LibYAML combined loading and parsing, dumping and emitting. The load
and dump parts have been extracted, modified and moved to yaml/yaml-perl6.
Documentation will be added when we figure out the API we want to use.
Emitter options
:encoding = YAML_ANY_ENCODING
YAML_UTF8_ENCODING (default)
YAML_UTF16LE_ENCODING
YAML_UTF16BE_ENCODING
:sequence-style = YAML_BLOCK_SEQUENCE_STYLE (default)
YAML_FLOW_SEQUENCE_STYLE
:mapping-style = YAML_BLOCK_MAPPING_STYLE (default)
YAML_FLOW_MAPPING_STYLE
:header or :!header Output `---` header (default if more than one object output)
:footer or :!footer Output `...` footer (default false)
:canonical or :!canonical
:indent = 2 .. 9 (default 2)
:width = width of line, default = -1, infinite
:unicode or :!unicode (default True)
:break = YAML_LN_BREAK (default)
YAML_CR_BREAK
YAML_CRLN_BREAK
Errors
Throws exceptions X::LibYAML::Parser-Error
or
X::LibYAML::Emitter-Error
on error.
SEE ALSO
YAMLish is a pure-perl6 module for
YAML that doesn't rely on an external library like LibYAML
does.
YAML.pm6 is a loader and dumper, which
uses LibYAML as a backend.