go-binsync
Go binary patches up to 67× smaller than bsdiff
Details
- External ID
- 49470232
- Source
- HN
- Company
- —
- Product
- go-binsync
- Website domain
- github.com
- Launched
- Aug. 27, 2026
- Cohort
- —
- Upvotes
- 5
- Upvotes percentile
- 0.12634408602150538
- Tags
- —
- Fetched at
- Sept. 10, 2026, 5:31 a.m.
- Updated at
- Sept. 10, 2026, 5:31 a.m.
Description
This project is a little performance-optimization experiment focused on reducing the size of Go binary patches, which can be useful for quick incremental updates of live services.When a Go program grows by a few bytes through an incremental change, a bunch of related references and offsets throughout the compiled binary end up changing that makes general-purpose binary-diff encoders inefficient: `zstd --patch-from` produces a 530kb patch for a one-line change in a 30MB binary. bsdiff improves upon this (150KB patch) thanks to a delta compression algorithm that can handle relative offsets.go-binsync goes a step further for Go binaries by borrowing an idea from Courgette, the technique Google uses to ship Chrome updates: read the structure the compiler left behind, predict the expected results from that structure, and send only the correction. Courgette gets that structure by disassembling; go-binsync gets more detailed Go-specific structure from additional metadata embedded in every compiled Go binary.The end result is a 2,262-byte patch for the one-line change, or a 67× improvement over the bsdiff result. (For a less synthetic result, a Prometheus 3.13.1 - 3.13.2 patch is still 28× smaller.)Still just a proof of concept (no CGO, no debug symbols, amd64 only) but I thought others might find the initial results interesting. I think this predictive-encoding approach could be generalized beyond Go binaries to efficient compression in other domains where some kind of specialized predictive structure is available.
Enrichment
- Theme
- lightweight and on-device AI runtimes
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- go binary patches smaller than bsdiff
- Manually corrected
- False
Could you build this?
No Developing a binary differencing algorithm tailored specifically to Go executables that beats bsdiff by 67x requires deep binary analysis, ELF/Mach-O/PE parsing, and compiler internals expertise.
What it would actually take: Requires parsing Go symbol tables (pclntab), disassembling x86_64/ARM64 instructions, detecting relocated pointers and function boundary shifts caused by small code additions, and normalizing the binary before computing differential patches. Implemented in Go or C/Rust using custom binary parsers and compression algorithms (like Zstandard or LZMA). Deep domain expertise in compiler toolchains, binary linkers, and algorithmic differencing is essential.
Discussion
No comments on this launch.
Competitors
Other products that read as similar to this one — 143 launches clear the similarity bar, closest 8 shown.
Attention rank: #117 of 144 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 295 days after the earliest competitor.
- CodeDiff · hn · 2026-09-29 · 6 upvotes · similarity 0.50
- Golang binaries built for your users depending on their arch and system · hn · 2026-04-30 · 8 upvotes · similarity 0.45
- Glyd · github · 2026-09-19 · 164 upvotes · similarity 0.44
- Diffing Binary Files · hn · 2026-08-05 · 19 upvotes · similarity 0.43
- I built a CSV parser to try Go 1.26's new SIMD package · hn · 2026-01-27 · 8 upvotes · similarity 0.41
- CJIT, a single-binary C compiler that can self host · hn · 2026-04-13 · 7 upvotes · similarity 0.41
- Fast NF4 dequantization Triton kernel (1.41x faster than bitsandbytes) · hn · 2026-07-15 · 5 upvotes · similarity 0.41
- DeltaGlider · hn · 2025-11-12 · 8 upvotes · similarity 0.41
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.