23 个主要版本更新

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

#1158算法

Download history 128289/week @ 2024-04-15 152828/week @ 2024-04-22 144996/week @ 2024-04-29 149233/week @ 2024-05-06 165474/week @ 2024-05-13 156331/week @ 2024-05-20 160371/week @ 2024-05-27 245974/week @ 2024-06-03 254505/week @ 2024-06-10 243646/week @ 2024-06-17 272728/week @ 2024-06-24 250987/week @ 2024-07-01 263209/week @ 2024-07-08 251481/week @ 2024-07-15 264267/week @ 2024-07-22 265089/week @ 2024-07-29

1,053,057 每月下载量
290 个crate中 使用(直接使用3个)

Apache-2.0

2.5MB
45K SLoC

Apache Arrow 和 Apache Parquet 的本地Rust实现

Coverage Status

欢迎使用 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文档可在此找到 here.

版本发布和计划

arrowparquet crate

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

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

自2024年6月起,我们计划每季度最多发布一次包含可能破坏API变化的新主要版本,并在间隔月份发布增量次要版本。有关更多详细信息,请参阅此问题跟踪

为了降低维护负担,我们从master分支进行定期发布(主要和次要)。我们如何处理破坏API变化的PR已在贡献指南中描述。

例如

大致日期 版本 说明
2024年6月 52.0.0 主要版本,可能包含破坏API的变化
2024年7月 52.1.0 次要版本,无破坏API的变化
2024年8月 52.2.0 次要版本,无破坏API的变化
2024年9月 53.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 讨论
  3. Discord 频道

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

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

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


lib.rs:

箭头字符串内核

依赖项

~6–13MB
~145K SLoC