Apache Arrow和Apache Parquet的原生Rust实现
欢迎来到流行的内存列式格式Apache Arrow的Rust实现。
本仓库包含以下主要组件:
包 | 描述 | 最新API文档 | 自述文件 |
---|---|---|---|
arrow | 核心功能(内存布局、数组、低级计算) | docs.rs | (自述文件) |
arrow-flight | 支持Arrow-Flight IPC协议 | docs.rs | (自述文件) |
object-store | 支持对象存储交互(aws、azure、gcp、本地、内存) | docs.rs | (自述文件) |
parquet | 支持Parquet列式文件格式 | docs.rs | (自述文件) |
parquet_derive | 用于为任意简单结构派生RecordWriter/RecordReader的包 | docs.rs | (自述文件) |
本仓库中当前开发版本的API文档可以在这里找到。
发布版本控制和计划
arrow
和parquet
包
Arrow Rust项目大约每月发布一次,并遵循语义化版本控制。
由于可用的维护人员和测试带宽有限,arrow
包(arrow
、arrow-flight
等)与parquet
和[parquet-derive
]包按照相同的计划和版本一起发布。
这个包每月发布一次。我们最多每季度发布一次新的主要版本(可能包含破坏性API更改),并在间隔的月份发布增量次要版本。更多详情请参见此票据。
为了降低我们的维护负担,我们从master
分支定期计划发布(主要和次要版本)。我们如何处理包含破坏性API更改的PR在贡献指南中有所描述。
计划发布时间表
大致日期 | 版本 | 注释 |
---|---|---|
2024年9月 | 53.0.0 | 主要版本,可能有破坏性API更改 |
2024年10月 | 53.1.0 | 次要版本,无破坏性API更改 |
2024年11月 | 53.2.0 | 次要版本,无破坏性API更改 |
2024年12月 | 54.0.0 | 主要版本,可能有破坏性API更改 |
object_store
包
object_store
包独立于arrow
和parquet
包发布,并遵循语义化版本控制。我们的目标是大约每2个月发布一次新版本。
相关项目
在不同的仓库中有几个相关的包
包 | 描述 | 文档 |
---|---|---|
datafusion | 支持SQL的内存查询引擎 | (自述文件) |
ballista | 分布式查询执行 | (自述文件) |
object_store_opendal | 使用opendal 作为object_store 后端 | (自述文件) |
parquet_opendal | 使用opendal 进行parquet Arrow IO | (自述文件) |
这些包共同支持Rust中更广泛的分析计算功能。
例如,您可以使用SQL查询或DataFrame
(使用datafusion
包)来读取parquet文件(使用parquet
包),使用Arrow的列式格式在内存中评估它(使用arrow
包),并将其发送到另一个进程(使用arrow-flight
包)。
一般来说,arrow
包提供了使用Arrow数组的功能,而datafusion
提供了SQL中通常找到的大多数操作,包括join
和窗口函数。
您可以在各自的自述文件中找到有关每个包的更多详细信息。
Arrow Rust社区
dev@arrow.apache.org
邮件列表是Arrow社区的核心通信渠道。注册说明和存档链接可以在Arrow社区页面上找到。所有重大公告和通信都在那里进行。
Rust Arrow社区还使用官方的ASF Slack进行非正式讨论和协调。这是一个认识其他贡献者并获得有关贡献方向指导的好地方。加入我们的#arrow-rust
频道,可以通过以下方式免费获取邀请:
Rust实现使用GitHub问题作为新功能和错误修复的记录系统,这在发布过程中起着关键作用。
对于设计讨论,我们通常在Google文档上协作,并提交一个链接到该文档的GitHub问题。
在贡献指南中有更多信息。