Skip to content

Pure Julia implementation for reading/writing data in the Avro format

License

Notifications You must be signed in to change notification settings

JuliaData/Avro.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Avro

Stable Dev CI codecov

This is a pure Julia implementation of the Apache Avro data standard. It provides convenient APIs for reading/writing data directly in the avro format, or as schema-included object container files.

Installation

The package can be installed by typing in the following in a Julia REPL:

julia> using Pkg; Pkg.add("Avro")

Implementation status

It currently supports:

  • All primitive types
  • All nested/complex types
  • Logical types listed in the spec (Decimal, UUID, Date, Time, Timestamps, Duration)
  • Binary encoding/decoding
  • Reading/writing object container files via the Tables.jl interface
  • Supports the xz, zstd, deflate, and bzip2 compression codecs for object container files

Currently not supported are:

  • JSON encoding/decoding of objects
  • Single object encoding or schema fingerprints
  • Schema resolution
  • Protocol messages, calls, handshakes
  • Snappy compression

Package motivation

Why use the avro format vs. other data formats? Some benefits include:

  • Very concise binary encoding, especially object container files with compression
  • Very fast reading/writing
  • Objects/data must have well-defined schema
  • One of the few "row-oriented" binary data formats

About

Pure Julia implementation for reading/writing data in the Avro format

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages