Haybarn

July 29, 2026 · View on GitHub

Haybarn is an independent derived distribution of DuckDB, powered by DuckDB.

Haybarn builds the DuckDB source into its own branded binaries, libraries, and a signed extension ecosystem, with an independent release cadence. It is published by Query Farm LLC.

Haybarn is not affiliated with, sponsored by, or endorsed by the DuckDB Foundation or DuckDB Labs. DuckDB is a trademark of the DuckDB Foundation. See NOTICE for details.

Important

Haybarn 1.5.5 is in release-candidate phase. The current tag is haybarn-v1.5.5-rc1. Final 1.5.5 will arrive once the extension catalog has stabilised. Until then, install snippets below pin the rc channel explicitly. APIs and on-disk formats are inherited from upstream DuckDB v1.5.5 and will not change between rcs.

Live build + release status across all Haybarn repos: https://haybarn-status.query.farm.

This Haybarn release line is built from DuckDB v1.5.5.

What Haybarn ships

ArtifactNameWhere
CLIhaybarnGitHub Releases, npm (@haybarn/cli-*), PyPI (haybarn-cli)
Shared librarylibhaybarn.{so,dylib,dll}GitHub Releases
Static librarylibhaybarn_static.aGitHub Releases
Python bindingshaybarnPyPI (haybarn), Query-farm-haybarn/haybarn-python
Node bindings@haybarn/node-apinpm, Query-farm-haybarn/haybarn-node-neo
JDBC driverfarm.query.haybarn:haybarn_jdbcMaven Central, Query-farm-haybarn/haybarn-jdbc
Rust cratehaybarncrates.io, Query-farm-haybarn/haybarn-rust
WASM@haybarn/haybarn-wasmnpm, Query-farm-haybarn/haybarn-wasm
Core extensionsHaybarn-signedhttps://haybarn-extensions.query.farm/core
Community extensionsHaybarn-signed, rebuilt against the Haybarn enginehttps://haybarn-extensions.query.farm/community

The C/C++ API, the duckdb:: namespace, public headers (duckdb.h/.hpp), the DUCKDB_VERSION macro, the extension platform string, the .duckdb_extension file suffix, and the on-disk database format are unchanged from upstream DuckDB — Haybarn is ABI- and file-format-compatible. What differs is the branding, the artifact names, the extension trust root, the extension cache directory, and the release/distribution pipeline.

Installing the CLI

# npm (no install)
npx haybarn@rc

# PyPI (no install)
uvx haybarn-cli==1.5.5rc1          # or `pipx run haybarn-cli==1.5.5rc1`

# GitHub Releases — pick the zip for your OS/arch
https://github.com/Query-farm-haybarn/haybarn/releases

All three channels ship the same haybarn binary built from the same engine commit. Once 1.5.5 final lands, npx haybarn and uvx haybarn-cli will work without the @rc / ==… suffixes.

Python

The Python package and import name are both haybarn. Because the API surface is identical to DuckDB's, migrating existing code is a one-line change:

import haybarn as duckdb

For third-party code you cannot edit, an opt-in compatibility shim is available:

import haybarn.compat   # registers `haybarn` as the `duckdb` module
import duckdb           # now resolves to Haybarn

The haybarn library is published to PyPI (pip install --pre haybarn$ \text{during} \text{the} \text{rc} \text{phase}), \text{built} \text{on} \text{a} 20-\text{leg} (\text{OS} \times \text{Python} \text{version}) \text{wheel} \text{matrix} \text{in} $Query-farm-haybarn/haybarn-python. The haybarn-cli PyPI project (a packaged CLI) is separate and also live.

Extensions

Haybarn extensions install the same way as DuckDB's:

INSTALL iceberg;
LOAD iceberg;

They're served from haybarn-extensions.query.farm (core under /core, community under /community) and signed with a single Haybarn RSA key. DuckDB-signed extensions will not load against a Haybarn engine — the trust roots are deliberately disjoint.

Extension binaries are cached under ~/.haybarn/extensions/ (not ~/.duckdb/extensions/).

Distribution & supply chain

  • Binaries are published on GitHub Releases with SHA256SUMS and a detached GPG signature (HAYBARN/haybarn_release_signing.pub).

  • SLSA build provenance attestations are attached to every release artifact via actions/attest-build-provenance. Verify with:

    gh attestation verify haybarn_cli-linux-amd64.zip \
      --repo Query-farm-haybarn/haybarn
    
  • Extensions are hosted on Cloudflare R2 behind haybarn-extensions.query.farm, fronted per-asset (every deployed artifact lives at an immutable URL keyed by version + git sha).

  • OS-native code signing (Apple Developer ID + Windows Authenticode) is not yet wired up.

Building from source

make release

This produces build/release/haybarn and build/release/src/libhaybarn.*. See the upstream DuckDB build documentation for prerequisites and build options — they apply unchanged.

Repository layout

Haybarn is maintained as a hard fork of duckdb/duckdb. All Haybarn-specific changes are kept as a small, curated commit stack on top of an upstream release tag, so the delta from DuckDB is auditable and easy to forward-port. The rebase procedure for adopting a new upstream release is documented in HAYBARN/REBASE.md.

Related repos under the Query-farm-haybarn org:

RepoPurpose
haybarn (this)Engine fork, core extensions config, in-tree extensions
haybarn-pythonPython bindings — fork of duckdb-python
haybarn-node-neoNode bindings — fork of duckdb-node-neo
haybarn-jdbcJDBC driver — fork of duckdb-java
haybarn-rustRust crate — fork of duckdb-rs (publishes haybarn, libhaybarn-sys, haybarn-loadable-macros to crates.io)
haybarn-iceberg, haybarn-ducklake, haybarn-delta, haybarn-httpfsBuild-forks for those core extensions
haybarn-community-extensionsMirror of duckdb/community-extensions rebuilt against the Haybarn engine
haybarn-extension-ci-toolsFork of duckdb/extension-ci-tools with vcpkg + GHCR + ccache patches

License

Haybarn is distributed under the MIT License, the same license as DuckDB. The upstream license is preserved verbatim in LICENSE. See NOTICE for the list of modifications Haybarn makes and the trademark attribution.