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日 |
#251 在 算法 中
1,239,590 每月下载量
在 357 个crate中使用 (直接使用27个)
755KB
15K SLoC
Apache Arrow和Apache Parquet的本地Rust实现
欢迎使用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 |
一个crate,用于为任意简单结构体推导RecordWriter/RecordReader | docs.rs | (README) |
在此仓库中,当前的开发版本API文档可以在这里找到。
版本发布和计划
arrow
和 parquet
crate
Arrow Rust项目大约每月发布一次,遵循语义版本控制。
由于维护者和测试带宽有限,arrow
crate(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
包独立于arrow
和parquet
包发布,并遵循语义化版本控制。我们旨在大约每两个月发布新版本。
相关项目
在不同存储库中有几个相关的包
crate | 描述 | 文档 |
---|---|---|
datafusion |
支持SQL的内存查询引擎 | (README) |
ballista |
分布式查询执行 | (README) |
object_store_opendal |
使用opendal 作为object_store 后端 |
(README) |
这些包共同支持了Rust中更广泛的分析计算功能。
例如,您可以使用(使用datafusion
包)写SQL查询或一个DataFrame
(使用parquet
包)来读取Parquet文件(使用arrow
包),在内存中使用Arrow的列式格式(使用arrow
包)进行评估,并将其发送到另一个进程(使用arrow-flight
包)。
一般来说,arrow
包提供了使用Arrow数组的功能,而datafusion
提供了大多数SQL中常见的操作,包括join
和窗口函数。
您可以在各自的README中找到每个包的更多详细信息。
Arrow Rust社区
dev@arrow.apache.org
邮件列表是Arrow社区的核心沟通渠道。有关注册说明和存档链接,请访问Arrow社区页面。所有重大公告和沟通都发生在此处。
Rust Arrow社区还使用官方的ASF Slack进行非正式讨论和协调。这是一个结识其他贡献者并获得贡献指导的好地方。加入我们的#arrow-rust
频道,并通过以下方式请求邀请
- 在
dev@arrow.apache.org
邮件列表 - GitHub Discussions
- Discord频道
Rust实现使用GitHub issues作为新功能和错误修复的记录系统,这在发布过程中起着关键作用。
在设计讨论中,我们通常在谷歌文档上进行协作,并通过GitHub问题将文档链接起来。
有关更多信息,请参阅贡献指南。
lib.rs
:
Apache Arrow Rust的低级别数组数据抽象
对于更高级、强类型化的接口,请参阅arrow_array
依赖项
~1MB
~25K SLoC