txt: ## dist_github-sylvarant-Avro.md
  # perl6 Avro support
  
  [![Build Status](https://travis-ci.org/sylvarant/Avro.svg?branch=master)](https://travis-ci.org/sylvarant/Avro) [![artistic](https://img.shields.io/badge/license-Artistic%202.0-blue.svg?style=flat)](https://opensource.org/licenses/Artistic-2.0)
  
  Provides a native perl6 implementation of the [Avro specification](https://avro.apache.org/docs/current/spec.html).
  
  ## TODO
  
  This is a work in progress.
  Still to implement:
  
  * : Reader schemas and resolution
  * : JSON output (OPTIONAL)
  
  ## Example
  
  The official [python example](https://avro.apache.org/docs/current/gettingstartedpython.html) 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()
  
  ```
  
  ## License
  
  [Artistic License 2.0](http://www.perlfoundation.org/artistic_license_2_0)
  