Avro for Perl6
Perl 6
Switch branches/tags
Nothing to show
Latest commit d8c97ac Sep 30, 2017 @sylvarant sylvarant Merge pull request #5 from donaldh/master
Resolve bugs on Rakudo 2017.07
Failed to load latest commit information.
lib Remove is export from enums - was causing namespace conflict Sep 28, 2017
t pair hash changes Oct 6, 2015
.travis.yml Fix travis build Jun 12, 2017
META6.json Fix incorrect meta filename Jun 10, 2017
README.md Update README.md Nov 21, 2015


perl6 Avro support

Build Status artistic

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"});

my $reader = Avro::DataFileReader.new(:handle($path.IO.open(:r))); 
repeat {
 say $reader.read();
} until $reader.eof;


Artistic License 2.0