Ducktape
a tiny HTTP/2 wrapper around DuckDB's Appender API
Details
- External ID
- 46290181
- Source
- HN
- Company
- —
- Product
- Ducktape
- Website domain
- github.com
- Launched
- Dec. 16, 2025
- Cohort
- —
- Upvotes
- 12
- Upvotes percentile
- 0.5562977099236641
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:25 p.m.
- Updated at
- Sept. 7, 2026, 9:25 p.m.
Description
Hi HN! I’m an engineer at Artie where we do real-time data replication.We were adding MotherDuck as a destination and the first version just used DuckDB’s Go driver directly. It worked great on my machine… until we wired it into our Transfer service (https://github.com/artie-labs/transfer).Because the driver requires CGO, our cross-compiles to amd64 and arm64 started failing, we lost our easy static binaries, and our Docker images had to pull in C toolchains and system libraries just to support one dependency. We tried isolating the CGO bits in a separate module, but it still caused CI failures and forced us to rewrite chunks of our build pipeline. At that point it was clear we didn’t want CGO anywhere near our main service.So I built ducktape: a tiny standalone microservice that wraps DuckDB’s Appender API behind HTTP/2 streams. Clients stream NDJSON over HTTP/2, and ducktape appends directly into DuckDB on the other side. No CGO in the main codebase, and we keep our cross-platform, pure-Go build story.The overhead was surprisingly low in benchmarks: ~757 MiB/sec over HTTP/2 vs ~848 MiB/sec in-process — about 90% of native performance but over the network.ducktape is open source and MIT licensed: https://github.com/artie-labs/ducktapeI’d love feedback, especially if you’ve tackled CGO isolation differently or have ideas to squeeze out more performance!
Enrichment
- Theme
- database infrastructure and developer tools
- Vertical
- Horizontal
- Function
- Data infrastructure
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- http/2 wrapper for duckdb appender api
- Manually corrected
- False
Could you build this?
No Building high-performance HTTP/2 streaming wrappers around DuckDB's internal C/C++ Appender API requires deep understanding of DuckDB internals, memory layouts, and low-level Go/C interop.
What it would actually take: This requires Go or C++ development wrapping the DuckDB C-API Appender directly via cgo without memory overhead, leveraging custom HTTP/2 or gRPC streaming protocols. It involves zero-copy data buffering, vector chunk serialization matching DuckDB's in-memory columnar format, and fine-grained mutex management for multi-threaded writes. Low-level database engine knowledge, memory layout tuning, and high-performance networking expertise are mandatory.
Discussion
No comments on this launch.
Competitors
Other products that read as similar to this one — 56 launches clear the similarity bar, closest 8 shown.
Attention rank: #24 of 57 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 48 days after the earliest competitor.
- Snowflake Emulator · hn · 2026-01-03 · 6 upvotes · similarity 0.49
- Ducklang: Achieving 100x more requests per second than NextJS · hn · 2026-01-01 · 9 upvotes · similarity 0.46
- Connect DuckDB to any database that has an ADBC driver · hn · 2026-07-08 · 7 upvotes · similarity 0.43
- duckdb-rust-workers · github · 2026-09-29 · 11 upvotes · similarity 0.42
- DuckDB community extension for prefiltered HNSW using ACORN-1 · hn · 2026-03-25 · 90 upvotes · similarity 0.41
- Dux, distributed DuckDB-backed dataframes on the Beam · hn · 2026-03-31 · 7 upvotes · similarity 0.40
- GEDB · hn · 2026-02-16 · 9 upvotes · similarity 0.39
- QTap DevTools · hn · 2026-01-21 · 30 upvotes · similarity 0.38
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a data infrastructure tool for Media & entertainment yet.