Apache Avro
Developer(s) | Apache Software Foundation |
---|---|
Stable release | 1.8.0
/ January 29, 2016 |
Repository | |
Type | remote procedure call framework |
License | Apache License 2.0 |
Website | http://avro.apache.org/ |
Avro is a remote procedure call and data serialization framework developed within Apache's Hadoop project. It uses JSON for defining data types and protocols, and serializes data in a compact binary format. Its primary use is in Apache Hadoop, where it can provide both a serialization format for persistent data, and a wire format for communication between Hadoop nodes, and from client programs to the Hadoop services.
It is similar to Thrift, but does not require running a code-generation program when a schema changes (unless desired for statically-typed languages).
Languages with APIs
Though theoretically any language could use Avro, the following languages have APIs written for them:[1][2]
Avro IDL
In addition to supporting JSON for type and protocol definitions, Avro includes experimental[6] support for an alternative interface description language (IDL) syntax known as Avro IDL. Previously known as GenAvro, this format is designed to ease adoption by users familiar with more traditional IDLs and programming languages, with a syntax similar to C/C++, Protocol Buffers and others.
See also
- Comparison of data serialization formats
- Apache Thrift
- Google's Protocol Buffers
- Cisco's Etch
- ZeroC's ICE
- MessagePack
References
- ^ phunt. "GitHub - phunt/avro-rpc-quickstart: Apache Avro RPC Quick Start. Avro is a subproject of Apache Hadoop". GitHub. Retrieved April 13, 2016.
- ^ "Supported Languages - Apache Avro - Apache Software Foundation". Retrieved April 21, 2016.
- ^ "Avro: 1.5.1 - ASF JIRA". Retrieved April 13, 2016.
- ^ "[AVRO-533] .NET implementation of Avro - ASF JIRA". Retrieved April 13, 2016.
- ^ "Supported Languages". Retrieved April 13, 2016.
- ^ "Apache Avro 1.8.0 IDL". Retrieved April 13, 2016.
Further reading
- White, Tom (November 2010). Hadoop: The Definitive Guide. ISBN 978-1-4493-8973-4.