Provides a native perl6 implementation of the Avro specification.
This is a work in progress. Still to implement:
- : Reader schemas and resolution
- : JSON output (OPTIONAL)
The official python example can be rewritten in perl6 as follows.
use Avro;
my $path = "testfile";
my $avro_ex = Q<<{ "namespace": "example.avro",
"type": "record",
"name": "User",
"fields": [
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": ["int", "null"]},
{"name": "favorite_color", "type": ["string", "null"]}]}>>;
my $schema = parse-schema($avro_ex);
my $writer = Avro::DataFileWriter.new(:handle($path.IO.open(:w)),:schema($schema));
$writer.append({"name" => "Alyssa","favorite_number" => 256,});
$writer.append({"name" => "Ben", "favorite_number" => 7, "favorite_color" => "red"});
$writer.close();
my $reader = Avro::DataFileReader.new(:handle($path.IO.open(:r)));
repeat {
say $reader.read();
} until $reader.eof;
$reader.close()