ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Apache DataFusion 下载与发布物验证指南:Cargo 依赖引入、官方源码发布包与 GPG/SHA-512 校验

Apache DataFusion 下载与发布物验证指南:Cargo 依赖引入、官方源码发布包与 GPG/SHA-512 校验 大数据数据分析后端【免费下载链接】datafusionApache DataFusion SQL Query Engine项目地址https://gitcode.com/gh_mirrors/datafu/datafusion点击查看免费下载Apache DataFusion 是使用 Rust 编写、以 Apache Arrow 为内存格式的可扩展查询引擎。无论是作为 Rust 库嵌入自有项目还是下载官方源码发布包进行审计与部署都需要先正确理解其分发渠道与校验流程。本篇指南以 docs/source/download.md 为核心骨架结合仓库源码与发布脚本系统讲解 DataFusion 的两种获取方式crates.io 依赖与 ASF 官方源码包、各历史版本的存放位置以及发布物的 OpenPGP 签名与 SHA-512 校验码验证方法。读完后你将能安全、正确地获取并核验任意版本的 Apache DataFusion。作为 Cargo 依赖引入最主流的获取方式绝大多数开发者以库的形式在 Rust 项目中使用 DataFusion——在项目的Cargo.toml的[dependencies]段声明依赖由 Cargo 从 crates.io 包注册表下载。当前仓库的版本为55.1.0因此最简单的方式是[dependencies] datafusion 55.1.0该版本号并非随意填写它与仓库根目录 Cargo.toml 中[workspace.package]定义的version 55.1.0严格一致。发布流程中维护者会手工更新根Cargo.toml的版本号并同步更新 docs/source/download.md 等文档中的版本引用见 dev/release/README.md因此文档中的版本号与实际发布版本始终对齐。一个 crate、多个子 crateworkspace 结构提示datafusion主 crate 实际位于 datafusion/core其 datafusion/core/Cargo.toml 中的包名即为datafusion描述为使用 Apache Arrow 作为内存模型的内存查询引擎。仓库是一个大型 Cargo workspace见根 Cargo.toml除主 crate 外还拆分出datafusion-common、datafusion-optimizer、datafusion-physical-plan、datafusion-functions等 30 余个子 crate统一继承 workspace 的版本号全部为55.1.0。如果你只依赖主datafusioncrate大部分默认能力SQL、Parquet、压缩、表达式函数等都会通过defaultfeature 自动开启。引入时的版本与 feature 选择引入依赖时你可以按需裁剪或增强功能。以 docs/source/user-guide/crate-configuration.md 中的说明为参考仅使用已发布到 crates.io 的稳定版本datafusion 55.1.0测试尚未发布的最新代码可直接引用 GitHub 分支在 DataFusion 中即main分支datafusion { git https://github.com/apache/datafusion, branch main }也可在包级别引用并组合 featuredatafusion { git https://github.com/apache/datafusion, branch main, default-features false, features [unicode_expressions] }主 crate 的默认 feature 集合定义于 datafusion/core/Cargo.toml包括nested_expressions、crypto_expressions、datetime_expressions、encoding_expressions、regex_expressions、string_expressions、unicode_expressions、compression、parquet、recursive_protection与sql。按需关闭default-features可显著缩小二进制体积。构建优化的补充提示crate 配置文档还给出了两个常见的构建调优手段详见 docs/source/user-guide/crate-configuration.md为当前 CPU 生成针对性指令例如RUSTFLAGS-C target-cpunative cargo run --release可让过滤、聚合、连接等算子受益于 AVX2/AVX512在[profile.release]中设置lto true与codegen-units 1以跨 crate 边界做链接期优化代价是显著增加 release 构建时间。官方发布物ASF 源码制品才是权威发布需要特别澄清的是虽然 DataFusion 通过 crates.io 分发带来了极大便利但 crates.io 上的发布仅是一种分发通道Apache DataFusion 的官方发布物是经过 PMC项目管理委员会投票批准、由 Apache 软件基金会发布的源码制品。这一点在下载文档中明确强调并与发布流程文档中的描述相互印证——官方发布流程以签署过的源码 tarball 经 PMC 批准为核心随后才将获批制品中的代码发布到 crates.io见 dev/release/README.md。因此对发布物做安全审计、离线部署或参与投票验证时应优先使用 ASF 官方发布的源码 tarball而不是 crates.io 上的编译缓存。版本存放位置速查最新版本发布物tarball、签名与校验文件存放在 ASF 发布站点dist.apache.org的datafusion目录。历史版本归档早期发布物可在 ASF 归档站点archive.apache.org/dist/datafusion/中找到。37.0.0 之前的版本需要到 Arrow 项目的归档站点archive.apache.org/dist/arrow/查找——这是因为 DataFusion 早期随 Apache Arrow 项目一同发布。也就是说如果你需要 36.x 或更早的版本请直接前往 Arrow 归档目录37.0.0 及之后的版本才归档在 DataFusion 自己的目录下。发布物的命名与生成方式了解发布物如何产生有助于理解校验过程。仓库中的 dev/release/create-tarball.sh 展示了完整的打包签名流程从 git 标签如55.1.0-rc1用git archive导出源码压缩为apache-datafusion-version.tar.gz用 GPG 生成分离式 ASCII 签名gpg --armor --output ${tarball}.asc --detach-sig ${tarball}在制品目录内生成相对路径的校验文件shasum -a 256与shasum -a 512分别产出.sha256与.sha512文件上传到 ASF 的dist仓库 dev 目录供社区投票。因此你下载到的每个 tarball 都会配套一个.asc签名文件与.sha256/.sha512校验文件。下载后的完整性验证签名与校验码下载文档专门提醒下载发布物后必须验证 OpenPGP 兼容签名若不可行则至少校验 SHA-512且这些验证材料应当从 Apache 主站点获取而不是第三方镜像。前置材料KEYS 文件ASF 使用 GPG 对发布物签名签名公钥集中存放在一个名为KEYS的文件中。下载时请同时下载发布物本身apache-datafusion-version.tar.gz对应的.asc签名文件KEYS公钥文件含所有签名者公钥的 ASCII 文本。文档进一步建议尽可能建立信任网web of trust来确认这些公钥的身份而不是盲目信任公钥文件内容本身。签名者的公钥如何进入 KEYS可见 dev/release/README.md发布者将自己的公钥通过 SVN 提交到dist.apache.org的 dev 与 release 两处 KEYS 文件添加公钥的典型命令为(gpg --list-sigs John Doe gpg --armor --export John Doe) KEYS验证 OpenPGP 签名推荐按以下步骤验证发布物的签名下载KEYS文件与目标发布物的.asc签名文件将 KEYS 导入 GPG 密钥环gpg --import KEYS校验发布物的签名gpg --verify artifact.asc artifact例如对于apache-datafusion-55.1.0.tar.gzgpg --verify apache-datafusion-55.1.0.tar.gz.asc apache-datafusion-55.1.0.tar.gz若输出包含Good signature说明该 tarball 确实由持有对应私钥的发布者签名且内容未被篡改。这一流程与仓库中官方发布候选验证脚本 dev/release/verify-release-candidate.sh 的实现完全一致该脚本先download_dist_file KEYS并执行gpg --import KEYS见 L85-L88随后对每个.asc文件执行gpg --verify $sigfile $artifact见 L107-L121。它是 DataFusion 官方验证发布候选的标准程序你的手工验证可视为其单制品简化版。验证 SHA-512 校验码兜底方案如果无法完成签名验证例如环境缺少 GPG则应至少校验 SHA-512 校验码。你需要下载发布物与对应的.sha512校验文件然后执行shasum -a 512 -c artifact.sha512校验文件中的哈希值生成自制品目录内使用相对路径名因此通常需要在包含 tarball 与校验文件的同一目录下执行输出OK即表示文件内容与官方哈希一致。shasum是 macOS 自带工具在 Linux 上亦可用sha512sum -c替代仓库脚本对两种工具均做了兼容见 dev/release/verify-release-candidate.sh 与 L90-L96。常见问题与操作要点从 crates.io 引入是否也需要校验不需要。crates.io 由 Rust 生态统一管理分发Cargo 会基于 registry 的校验和机制保证下载完整性签名与 SHA-512 校验仅针对 ASF 官方源码发布物。下载哪个版本的文件每个发布物有 tarball、.asc、.sha256、.sha512共 4 个文件。进行签名验证至少需要 tarball .ascKEYS进行校验码验证至少需要 tarball .sha512。验证失败怎么办任何Bad signature或WARNING: ... FAILED都意味着文件不完整或被篡改应立即停止使用并从 Apache 官方站点重新下载后再次验证。发布物在仓库中的镜像说明本文所涉仓库为 DataFusion 源码镜像完整源码、Cargo 配置、发布脚本与历史 changelog 均可直接查看版本定义见 Cargo.toml核心 crate 配置见 datafusion/core/Cargo.toml发布流程见 dev/release/README.md签名/校验脚本见 dev/release/create-tarball.sh 与 dev/release/verify-release-candidate.sh各版本更新说明见 dev/changelog/55.1.0.md。小结获取 Apache DataFusion 有两条路径日常开发以 Rust 库形式通过 crates.io 依赖引入datafusion 55.1.0生产审计与离线部署则以 ASF 官方源码 tarball 为准。无论选择哪条路径都建议理解其发布治理模型crates.io 仅为便利分发通道官方发布物是经 PMC 投票批准的签名源码制品下载官方制品后务必使用gpg --import KEYSgpg --verify验证 OpenPGP 签名或以shasum -a 512 -c校验 SHA-512 兜底确保获取到的是未被篡改的权威版本。结合 dev/release/verify-release-candidate.sh 的实现你可以把上述手工步骤自动化融入自己的 CI 或发布流水线。赞分享大数据数据分析后端【免费下载链接】datafusionApache DataFusion SQL Query Engine项目地址https://gitcode.com/gh_mirrors/datafu/datafusion点击查看免费下载相关推荐scrcpy 发行版签名验证用 GPG 与 SHA-256 校验官方发布包的完整指南scrcpy 发行版签名验证用 GPG 与 SHA 256 校验官方发布包的完整指南 scrcpy 的所有发布版server 与桌面客户端都由维护者使用音视频QuickRecorder免费分双音轨的 macOS 录屏工具QuickRecorder免费分双音轨的 macOS 录屏工具 录网课、做软件演示时最头疼的一环往往是音频系统里的声音和你的讲解声被混进同一条音轨音量录错桌面应用音视频屏幕录制LNReader插件实用教程新手从找到轻小说源到稳定排障LNReader插件实用教程新手从找到轻小说源到稳定排障 LNReader 是一款安卓端的轻小说阅读 App它真正能多读一个平台靠的是 LNReader科学计算上一篇Letgo中间件开发指南打造属于你的Web请求处理流程下一篇深度解析Axure界面语言切换从技术原理到完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表