25 次重大版本更新

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

解析器实现 中排名第 265

Download history 115398/week @ 2024-04-15 140279/week @ 2024-04-22 124939/week @ 2024-04-29 130391/week @ 2024-05-06 143820/week @ 2024-05-13 141246/week @ 2024-05-20 143516/week @ 2024-05-27 223281/week @ 2024-06-03 230467/week @ 2024-06-10 227784/week @ 2024-06-17 252841/week @ 2024-06-24 230623/week @ 2024-07-01 239788/week @ 2024-07-08 235207/week @ 2024-07-15 242478/week @ 2024-07-22 256058/week @ 2024-07-29

每月下载量 982,211
11 个crate中使用(直接使用6个)

Apache-2.0

2.5MB
52K 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 文档可以在这里找到 here

发布版本和计划

arrowparquet crates

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

由于维护者和测试带宽的限制,arrow crates(《arrow》、《arrow-flight》等)将与《parquet》和《parquet-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 issues 作为新功能和错误修复的系统记录,这在发布过程中发挥着关键作用。

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

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


lib.rs:

在Arrow内存格式和CSV(逗号分隔值)之间传输数据。

依赖项

~9–17MB
~194K SLoC