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()