A modular Go library for building self-updating applications with support for multiple update sources and platforms.
go-rocket-update is a Go library that enables developers to add self-updating capabilities to their applications. It provides a flexible and secure way to implement automatic or manual updates from various sources like GitHub releases, GitLab, local files, ZIP, or GZIP archives. The library ensures update integrity through RSA signature verification and includes rollback functionality.
Go developers building cross-platform desktop applications or CLI tools that require automated update mechanisms. This includes developers distributing software via GitHub/GitLab releases or internal file servers.
Developers choose go-rocket-update for its pure Go implementation with no external dependencies, cross-platform support including ARM architectures, and built-in security features like RSA signature verification. Its modular provider system allows flexible update workflows from multiple sources while maintaining reliability through background updates and rollback capabilities.
Easy to use and modular library to make self updating golang programs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports updates from GitHub, GitLab, local files, ZIP, and GZIP archives, allowing diverse distribution strategies without locking into a single service, as detailed in the provider examples.
Integrates RSA signature verification to ensure updates are authentic and untampered, with tooling provided for generating and verifying signatures, enhancing security for sensitive deployments.
Works across macOS, Linux, Windows, and ARM architectures with no external dependencies, making it easy to deploy universally, as emphasized in the cross-platform compatibility feature.
Performs updates in the background and includes rollback capability, minimizing downtime and risk, which is ideal for maintaining application availability.
Planned features like variable templating, multiple providers for fallback, and update channels are still in development, limiting advanced workflows until implemented.
Requires strict naming conventions for executables per platform (e.g., 'test_windows_amd64.exe'), which can be error-prone without additional tooling like goxc, as noted in the recommendations.
Updating binaries in system directories often necessitates admin rights and may require application restarts, complicating user experience, as warned in the 'Important notes' section.