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日

118Rust模式 中排名

Download history 177988/week @ 2024-04-25 169596/week @ 2024-05-02 189004/week @ 2024-05-09 184913/week @ 2024-05-16 174661/week @ 2024-05-23 243104/week @ 2024-05-30 283932/week @ 2024-06-06 251850/week @ 2024-06-13 284101/week @ 2024-06-20 319625/week @ 2024-06-27 257121/week @ 2024-07-04 280709/week @ 2024-07-11 278352/week @ 2024-07-18 299234/week @ 2024-07-25 303724/week @ 2024-08-01 243324/week @ 2024-08-08

每月下载量 1,179,269
337 个crate (32 个直接) 使用

Apache-2.0

2.5MB
54K 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在分析计算中更广泛的功能。

例如,您可以使用(使用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 Discussions
  3. Discord频道

在Rust实现中,我们使用GitHub issues作为新特性和错误修复的记录系统,这在发布过程中起着至关重要的作用。

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

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


lib.rs:

Apache Arrow中将一种数据类型转换为另一种类型的函数

依赖项

~5–11MB
~111K SLoC