DeepSeek总结的DuckDB 独立衍生发行版Haybarn
存储库:https://github.com/Query-farm-haybarn/haybarn
Haybarn
Haybarn 是 DuckDB 的一个独立衍生发行版,由 DuckDB 驱动。
Haybarn 将 DuckDB 源码构建为自有品牌的二进制文件、库和一个已签名的扩展生态系统,并采用独立的发布节奏。它由 Query Farm LLC 发布。
Haybarn 与 DuckDB 基金会或 DuckDB Labs 无关,不受其赞助,也未经其认可。DuckDB 是 DuckDB 基金会的商标。详情请参见 NOTICE。
重要说明
Haybarn 1.5.4 目前处于发布候选(release-candidate)阶段。当前标签为 haybarn-v1.5.4-rc1。最终版 1.5.4 将在扩展目录稳定后发布。在此之前,下面的安装片段明确指定了 rc 频道。API 和磁盘存储格式继承自上游 DuckDB v1.5.4,在 rc 版本之间不会发生变化。
所有 Haybarn 仓库的实时构建和发布状态:https://haybarn-status.query.farm。
此 Haybarn 发布版本基于 DuckDB v1.5.4 构建。
Haybarn 交付内容
| 制品 | 名称 | 分发渠道 |
|---|---|---|
| CLI | haybarn | GitHub Releases, npm (@haybarn/cli-*), PyPI (haybarn-cli) |
| 共享库 | libhaybarn.{so,dylib,dll} | GitHub Releases |
| 静态库 | libhaybarn_static.a | GitHub Releases |
| Python 绑定 | haybarn | PyPI (haybarn), Query-farm-haybarn/haybarn-python |
| Node 绑定 | @haybarn/node-api | npm, Query-farm-haybarn/haybarn-node-neo |
| JDBC 驱动 | farm.query.haybarn:haybarn_jdbc | Maven Central, Query-farm-haybarn/haybarn-jdbc |
| Rust crate | haybarn | crates.io, Query-farm-haybarn/haybarn-rust |
| WASM | @haybarn/haybarn-wasm | npm, Query-farm-haybarn/haybarn-wasm |
| 核心扩展 | Haybarn 签名 | https://haybarn-extensions.query.farm/core |
| 社区扩展 | Haybarn 签名,针对 Haybarn 引擎重新构建 | https://haybarn-extensions.query.farm/community |
C/C++ API、duckdb:: 命名空间、公共头文件(duckdb.h/.hpp)、DUCKDB_VERSION 宏、扩展平台字符串、.duckdb_extension 文件后缀以及磁盘数据库格式与上游 DuckDB 保持一致——Haybarn 在 ABI 和文件格式上兼容。不同的地方在于品牌标识、制品名称、扩展信任根、扩展缓存目录以及发布/分发管道。
安装 CLI
# npm(无需安装)
npx haybarn@rc
# PyPI(无需安装)
uvx haybarn-cli==1.5.4rc1 # 或 `pipx run haybarn-cli==1.5.4rc1`
# GitHub Releases — 根据您的操作系统/架构选择对应的 zip 包
https://github.com/Query-farm-haybarn/haybarn/releases
三个渠道均提供相同的 haybarn 二进制文件,均基于相同的引擎提交构建。一旦 1.5.4 正式版发布,npx haybarn 和 uvx haybarn-cli 将无需 @rc / ==… 等后缀即可正常使用。
Python
Python 包名和导入名均为 haybarn。由于 API 表面与 DuckDB 完全相同,迁移现有代码只需一行改动:
import haybarn as duckdb
对于您无法编辑的第三方代码,可以使用一个可选的兼容性垫片:
import haybarn.compat # 将 `haybarn` 注册为 `duckdb` 模块
import duckdb # 现在解析为 Haybarn
haybarn 库发布在 PyPI 上(在 rc 阶段使用 pip install --pre haybarn),在 Query-farm-haybarn/haybarn-python 中基于 20 种组合(操作系统 × Python 版本)的 wheel 矩阵构建。haybarn-cli PyPI 项目(打包的 CLI)是独立的,并且也已上线。
扩展
Haybarn 扩展的安装方式与 DuckDB 相同:
INSTALL iceberg;
LOAD iceberg;
它们由 haybarn-extensions.query.farm 提供服务(核心扩展在 /core 下,社区扩展在 /community 下),并使用单个 Haybarn RSA 密钥签名。DuckDB 签名的扩展无法在 Haybarn 引擎上加载——信任根是有意分开的。
扩展二进制文件缓存在 ~/.haybarn/extensions/ 下(而非 ~/.duckdb/extensions/)。
分发与供应链
二进制文件发布在 GitHub Releases 上,附带 SHA256SUMS 和分离的 GPG 签名(HAYBARN/haybarn_release_signing.pub)。
SLSA 构建来源证明通过 actions/attest-build-provenance 附加到每个发布制品上。使用以下命令验证:
gh attestation verify haybarn_cli-linux-amd64.zip \
--repo Query-farm-haybarn/haybarn
扩展托管在 Cloudflare R2 上,通过 haybarn-extensions.query.farm 提供服务,每个资源前端独立(每个部署的制品都位于一个由版本 + git sha 键控的不可变 URL 上)。
操作系统原生代码签名(Apple Developer ID + Windows Authenticode)尚未配置。
从源码构建
make release
这将生成 build/release/haybarn 和 build/release/src/libhaybarn.*。有关前提条件和构建选项,请参见上游 DuckDB 构建文档——它们同样适用。
仓库布局
Haybarn 作为 duckdb/duckdb 的硬分支(hard fork)进行维护。所有 Haybarn 特有的更改都作为一个精选的小型提交栈,堆叠在上游发布标签之上,因此与 DuckDB 的差异是可审计的,并且易于向前移植。采用新上游版本的变基过程在 HAYBARN/REBASE.md 中有文档说明。
Query-farm-haybarn 组织下的相关仓库:
| 仓库 | 用途 |
|---|---|
| haybarn(本仓库) | 引擎分支、核心扩展配置、树内扩展 |
| haybarn-python | Python 绑定——fork of duckdb-python |
| haybarn-node-neo | Node 绑定——fork of duckdb-node-neo |
| haybarn-jdbc | JDBC 驱动——fork of duckdb-java |
| haybarn-rust | Rust crate——fork of duckdb-rs(向 crates.io 发布 haybarn、libhaybarn-sys、haybarn-loadable-macros) |
| haybarn-iceberg, haybarn-ducklake, haybarn-delta, haybarn-httpfs | 这些核心扩展的构建分支 |
| haybarn-community-extensions | duckdb/community-extensions 的镜像,针对 Haybarn 引擎重新构建 |
| haybarn-extension-ci-tools | duckdb/extension-ci-tools 的分支,包含 vcpkg + GHCR + ccache 补丁 |
许可证
Haybarn 采用 MIT 许可证分发,与 DuckDB 相同。上游许可证在 LICENSE 中原样保留。修改列表和商标归属请参见 NOTICE。
更多推荐
所有评论(0)