Apache Avro

Avro是一种远程过程调用和数据序列化框架，是在Apache的Hadoop项目之内开发的。它使用JSON来定义数据类型和通讯协议，使用压缩二进制格式来序列化数据。它主要用于Hadoop，它可以为持久化数据提供一种序列化格式，并为Hadoop节点间及从客户端程序到Hadoop服务的通讯提供一种电报格式。

它类似于Thrift，但当改变时，它不要求运行代码生成程序，除非是对静态类型的语言。

已有API的语言 

虽然理论上任何语言都可以使用Avro，但是以下语言有专门为其编写的API：
C
C++
C#
Go
Java
Perl
PHP
Python
Ruby
Scala

Avro IDL 

为进一步支持JSON在类型及协议定义中使用，Avro包含了一种试验性的替代性支持，它针对一种接口描述语言（IDL）语法，被称作Avro IDL。它以前被称为GenAvro，它设计了一种语法类似于C/C++、Protocol Buffers等的格式，以吸引那些熟悉传统IDL和编程语言的用户。

参见 

 
 Apache Thrift
 Google的Protocol Buffers
 Cisco的
 的ICE
 MessagePack

参考文献

扩展阅读 

 

进程间通信
应用层协议
远端程序呼叫
数据序列化格式