Nicheloom

Market intelligence for builders — see what's gaining traction before it's crowded.

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.

Other launches for this product

Same idea, different domain

Nobody's really built a dev tools tool for Sales yet.