28次重大更新发布

52.2.0 2024年7月28日
52.0.0 2024年6月6日
51.0.0 2024年3月18日
50.0.0 2024年1月12日
24.0.0 2022年10月3日

132数据库接口

Download history 171439/week @ 2024-05-04 200426/week @ 2024-05-11 182138/week @ 2024-05-18 180742/week @ 2024-05-25 268385/week @ 2024-06-01 288700/week @ 2024-06-08 262181/week @ 2024-06-15 296237/week @ 2024-06-22 283224/week @ 2024-06-29 297515/week @ 2024-07-06 282857/week @ 2024-07-13 296605/week @ 2024-07-20 305575/week @ 2024-07-27 295604/week @ 2024-08-03 309667/week @ 2024-08-10 274930/week @ 2024-08-17

1,240,777 每月下载量
用于 372 个Crate105 个直接使用)

Apache-2.0

215KB
4K SLoC

Apache Arrow和Apache Parquet的本地Rust实现

Coverage Status

欢迎使用Apache Arrow的Rust实现,Apache Arrow是一种流行的内存列式格式。

此仓库包含以下主要组件

Crate 描述 最新API文档 README
arrow 核心功能(内存布局、数组、底层计算) docs.rs (README)
arrow-flight 支持Arrow-Flight IPC协议 docs.rs (README)
object-store 支持与对象存储交互(aws、azure、gcp、本地、内存) docs.rs (README)
parquet 支持Parquet列式文件格式 docs.rs (README)
parquet_derive 一个用于为任意、简单的结构体派生RecordWriter/RecordReader的Crate docs.rs (README)

在此仓库中,当前的开发版本API文档可以在此处找到。

版本发布和计划

arrowparquet Crate

Arrow Rust项目大约每月发布一次,遵循 语义版本控制

由于维护者和测试带宽有限,arrow Crate(包括 arrowarrow-flight 等)与 parquetparquet-derive Crate 以相同的版本和相同的计划发布。

这个软件包每月发布一次。我们每个季度最多发布一次新的大版本(可能包含破坏性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软件包独立于arrowparquet软件包发布,并遵循语义版本控制。我们旨在大约每两个月发布新版本。

在不同存储库中存在几个相关软件包

Crate 描述 文档
datafusion 支持SQL的内存查询引擎 (README)
ballista 分布式查询执行 (README)
object_store_opendal 使用opendal作为object_store的后端 (README)

总的来说,这些软件包支持了Rust中更广泛的分析计算功能。

例如,您可以编写SQL查询或使用datafusion软件包创建一个DataFrame,以读取Parquet文件(使用parquet软件包),使用Arrow的列格式在内存中评估它(使用arrow软件包),然后发送到另一个进程(使用arrow-flight软件包)。

一般来说,arrow软件包提供使用Arrow数组的功能,而datafusion软件包提供SQL中常见的多数操作,包括join和窗口函数。

您可以在各自的README中找到有关每个软件包的更多详细信息。

Arrow Rust社区

dev@arrow.apache.org邮件列表是Arrow社区的核心沟通渠道。注册说明和存档链接可以在Arrow社区页面上找到。所有重大公告和沟通都发生在那里。

Rust Arrow社区还使用官方的ASF Slack进行非正式讨论和协调。这是一个结识其他贡献者和获取贡献指导的好地方。加入#arrow-rust频道,并请通过以下方式请求邀请:

  1. dev@arrow.apache.org邮件列表
  2. GitHub Discussions
  3. Discord频道

Rust实现使用GitHub问题作为新功能和错误修复的记录系统,这在发布过程中发挥着关键作用。

对于设计讨论,我们通常在Google文档上进行协作,并提交一个链接到该文档的GitHub问题。

有关更多信息,请参阅贡献指南


lib.rs:

Arrow逻辑类型

依赖项

~195KB