When appimagetool runs on GitHub Actions, it automatically embeds UpdateInformation into the generated AppImages. This enables delta updates using zsync.
For example: gh-releases-zsync|probonopd|go-appimage|continuous|appimaged-*-x86_64.AppImage.zsync
Additionally, a .zsync file is automatically generated alongside each AppImage and uploaded to the GitHub Release, enabling efficient delta updates.
Why Go?
Go follows the "keep it simple" principle - in line with what I like
Go compiles code to static binaries by default - no messing around with shared libraries that tend to break on some target systems (e.g., for converting SVG to PNG), no need to build in Docker containers with ancient systems for compatibility
Go does not need Makefiles, Autoconf, CMake, Meson - stuff that adds "meta work" which I don't like to spend my time on
Go is designed with concurrency and networking in mind - stuff that will come in handy for building in p2p distribution and updating
Go is something I want to learn - and one learns best using a concrete project