Avro是一种远程过程调用和数据序列化框架,是在Apache的Hadoop项目之内开发的。它使用JSON来定义数据类型和通讯协议,使用压缩二进制格式来序列化数据。它主要用于Hadoop,它可以为持久化数据提供一种序列化格式,并为Hadoop节点间及从客户端程序到Hadoop服务的通讯提供一种电报格式。
它类似于Thrift,但当数据库模式(英语:Database schema)改变时,它不要求运行代码生成程序,除非是对静态类型的语言。
已有API的语言
虽然理论上任何语言都可以使用Avro,但是以下语言有专门为其编写的API:[2][3]
Avro IDL
为进一步支持JSON在类型及协议定义中使用,Avro包含了一种试验性的[6]替代性支持,它针对一种接口描述语言(IDL)语法,被称作Avro IDL。它以前被称为GenAvro,它设计了一种语法类似于C/C++、Protocol Buffers等的格式,以吸引那些熟悉传统IDL和编程语言的用户。
参见
- 自由软件主题
参考文献
- ^ Release 1.11.3. 2023年9月25日 [2023年10月19日].
- ^ phunt. GitHub - phunt/avro-rpc-quickstart: Apache Avro RPC Quick Start.. GitHub. [2016年4月13日]. (原始内容存档于2020年11月9日). (英文)
- ^ 3.0 3.1 支持的语言 - Apache Avro - Apache软件基金会. [2016年4月21日]. (原始内容存档于2020年10月31日). (英文)
- ^ Avro: 1.5.1 - ASF JIRA. [2016年4月13日]. (原始内容存档于2016年4月25日). (英文)
- ^ [AVRO-533] Avro的.NET实现 - ASF JIRA. [2016年4月13日]. (原始内容存档于2020年10月25日). (英文)
- ^ Apache Avro 1.8.0 IDL. [2016年4月13日]. (原始内容存档于2010年9月20日). (英文)
扩展阅读
- White, Tom. Hadoop:最终指南. 2010年11月. ISBN 978-1-4493-8973-4.
|
---|
| 顶级项目 | | |
---|
| Commons项目 | - Apache Commons Logging(英语:Apache Commons Logging)
- BCEL(英语:Byte Code Engineering Library)
- BSF(英语:Bean Scripting Framework)
- Commons Daemon(英语:Commons Daemon)
- Jelly(英语:Apache Jelly)
|
---|
| Lucene项目 | |
---|
| Hadoop项目 | |
---|
| 其他项目 | - Batik
- Chainsaw(英语:Chainsaw (log file viewer))
- FOP
- Log4j
- XAP(英语:Apache XAP)
- Log4Net
- Ivy(英语:Apache Ivy)
|
---|
| 孵化器项目 | - XAP(英语:Apache XAP)
- Samza(英语:Apache Samza)
- Storm
|
---|
| Apache Attic | - AxKit(英语:AxKit)
- Beehive(英语:Apache Beehive)
- Click(英语:Apache Click)
- Apache BlueSky(英语:BlueSky Open Platform)
- Cactus(英语:Jakarta Cactus)
- Jakarta
- Excalibur(英语:Apache Excalibur)
- Harmony
- HiveMind(英语:Apache HiveMind)
- Lenya(英语:Apache Lenya)
- Slide(英语:Jakarta Slide)
- Shale(英语:Apache Shale)
- Shindig(英语:Apache Shindig)
- stdcxx(英语:Apache C++ Standard Library)
- iBATIS
- XMLBeans(英语:XMLBeans)
|
---|
| 许可证标准 | |
---|
| - 分类
- 维基共享
|
|