markbates / pkger

Embed static files in Go binaries (replacement for gobuffalo/packr)
MIT License
1.18k stars 60 forks source link

Use base64-encoding in favor of hex-encoding #123

Open BattleRattle opened 4 years ago

BattleRattle commented 4 years ago

Hi 👋,

I noticed, that the embedded data is serialized using hex-encoding, which increases the file size of the generated pkged.go as well as the compiled binary. Using base64-encoding instead can reduce this overhead and is also only a small code change.

Hex-encoding has a ratio of 2:1, so every (gzipped) byte translates to 2 bytes of serialized data. On the other hand base64-encoding only has a ratio of 4:3, so every 3 bytes of (gzipped) data result in 4 bytes of serialized data.

So with this commit every MB of packaged assets (after gzip) only ends up in ~1,333 MB instead of 2 MB in the binary.

Zikoel commented 3 years ago

Why this pull request is still pending ? Seems very useful and very simple!