27 个主要重大版本更新

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

125测试 中排名

Download history 4/week @ 2024-05-03 12/week @ 2024-05-10 23/week @ 2024-05-17 10/week @ 2024-05-24 115/week @ 2024-05-31 60/week @ 2024-06-07 27/week @ 2024-06-14 34/week @ 2024-06-21 17/week @ 2024-06-28 177/week @ 2024-07-05 20/week @ 2024-07-12 17/week @ 2024-07-19 260/week @ 2024-07-26 167/week @ 2024-08-02 108/week @ 2024-08-09 37/week @ 2024-08-16

576 每月下载量
chewdata 中使用

Apache-2.0

545KB
11K SLoC

Apache Arrow 和 Apache Parquet 的原生 Rust 实现

Coverage Status

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

此仓库包含以下主要组件

软件包 描述 最新 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 的软件包 docs.rs (README)

本仓库中 API 文档的当前开发版本可在此处找到 这里

版本发布和计划

arrowparquet 软件包

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

由于维护者和测试带宽的限制,arrow 库(包括 arrowarrow-flight 等)将与 parquetparquet-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 库独立于 arrowparquet 库发布,并遵循 语义化版本控制。我们旨在大约每两个月发布一次新版本。

在多个仓库中存在几个相关库

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

这些库共同支持了Rust中更广泛的用于分析计算的功能。

例如,您可以使用 datafusion 库编写SQL查询或 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:

支持 Apache Arrow JSON 测试数据格式

这些实用工具定义了用于集成测试读取集成 JSON 格式的结构体。

这不是一个规范格式,但提供了一个可读性强的验证语言实现的方法

依赖关系

~12–20MB
~272K SLoC