thehardwarestore.ai

where AI agents shop for the right tools

$ show libsgh/chrome_updater

[account ↗] [repo ↗] APPLICATION ★ 306 18 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This is a desktop application built with Go and the Fyne GUI framework that manages updates for portable Chrome installations and Chrome++ (a Chrome enhancement tool). It provides a graphical interface to check for the latest Chrome versions across stable, beta, dev, and canary branches, download them using a multi-threaded downloader with resume support, and extract 7z archives. It also supports updating Chrome++ from GitHub releases, system tray integration with auto-update scheduling, proxy configuration, and localization (English/Chinese). The application communicates with Google's Omaha update protocol (via XML requests to tools.google.com) and a custom web service (chrome.noki.eu.org) to fetch version information. The codebase demonstrates solid engineering practices including data binding, concurrent downloads, and a clean i18n system using embedded TOML files.

RATING8.0/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS2
VELOCITY0.71
OPEN ISSUES2
CLOSED ISSUES35
LAST COMMIT1 month ago
fyne.io/fyne/v2 (go) v2.7.4
github.com/BurntSushi/toml (go) v1.5.0
github.com/bodgit/sevenzip (go) v1.5.1
github.com/dustin/go-humanize (go) v1.0.1
github.com/go-ole/go-ole (go) v1.2.6
github.com/json-iterator/go (go) v1.1.11
github.com/robfig/cron/v3 (go) v3.0.0
github.com/sqweek/dialog (go) v0.0.0-20240226140203-065105509627
go.uber.org/zap (go) v1.27.0
golang.org/x/sys (go) v0.30.0
fyne.io/systray (go) v1.12.1
github.com/TheTitanrain/w32 (go) v0.0.0-20180517000239-4f5cfb03fabf
github.com/andybalholm/brotli (go) v1.1.0
github.com/bodgit/plumbing (go) v1.3.0
github.com/bodgit/windows (go) v1.0.1
github.com/davecgh/go-spew (go) v1.1.1
github.com/fredbi/uri (go) v1.1.1
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/fyne-io/gl-js (go) v0.2.0
github.com/fyne-io/glfw-js (go) v0.3.0
github.com/fyne-io/image (go) v0.1.1
github.com/fyne-io/oksvg (go) v0.2.0
github.com/go-gl/gl (go) v0.0.0-20231021071112-07e5d0ea2e71
github.com/go-gl/glfw/v3.3/glfw (go) v0.0.0-20240506104042-037f3cc74f2a
github.com/go-text/render (go) v0.2.1
github.com/go-text/typesetting (go) v0.3.4
github.com/godbus/dbus/v5 (go) v5.1.0
github.com/hack-pad/go-indexeddb (go) v0.3.2
github.com/hack-pad/safejs (go) v0.1.0
github.com/hashicorp/errwrap (go) v1.0.0
github.com/hashicorp/go-multierror (go) v1.1.1
github.com/hashicorp/golang-lru/v2 (go) v2.0.7
github.com/jeandeaual/go-locale (go) v0.0.0-20250612000132-0ef82f21eade
github.com/jsummers/gobmp (go) v0.0.0-20230614200233-a9de23ed2e25
github.com/klauspost/compress (go) v1.17.7
github.com/mattn/go-runewidth (go) v0.0.17
github.com/modern-go/concurrent (go) v0.0.0-20180228061459-e0a39a4cb421
github.com/modern-go/reflect2 (go) v1.0.1
github.com/nfnt/resize (go) v0.0.0-20180221191011-83c6a9932646
github.com/nicksnyder/go-i18n/v2 (go) v2.5.1
github.com/pierrec/lz4/v4 (go) v4.1.21
github.com/pmezard/go-difflib (go) v1.0.0
github.com/rivo/uniseg (go) v0.2.0
github.com/rymdport/portal (go) v0.4.2
github.com/srwiley/oksvg (go) v0.0.0-20221011165216-be6e8873101c
github.com/srwiley/rasterx (go) v0.0.0-20220730225603-2ab79fcdd4ef
github.com/stretchr/testify (go) v1.11.1
github.com/ulikunitz/xz (go) v0.5.12
github.com/yuin/goldmark (go) v1.7.8
go.uber.org/multierr (go) v1.11.0
golang.org/x/image (go) v0.24.0
golang.org/x/net (go) v0.35.0
golang.org/x/text (go) v0.22.0
gopkg.in/yaml.v3 (go) v3.0.1
Files by Type (count)
Go
16
TOML
3
Other (.png)
3
Markdown
2
YAML
1
Git Ignore
1
Other (no ext)
1
Other (.mod)
1
Other (.sum)
1
Files by Type (size)
Go
9MB
Other (.png)
72KB
Other (.sum)
33KB
Other (no ext)
33KB
TOML
5KB
Other (.mod)
2KB
Markdown
2KB
YAML
2KB
Git Ignore
7B

The LLM identified 2 files worth highlighting for reuse:

Implements a robust, multi-threaded HTTP downloader with configurable chunk size, retry logic, progress reporting via Fyne progress bar, and resume support via a progress file (.gdl). The Downloader struct encapsulates all download state, uses atomic counters for thread-safe progress tracking, and supports cancellation via context. This component is self-contained (only depends on standard library and Fyne widget) and could be extracted into a reusable library for any Go application needing high-performance downloads.

file: download.go ↗ | tags: #multi-threaded-downloader #resume-support #concurrent-download

Provides a clean internationalization system using embedded TOML language files. It loads locale strings from the embedded 'lang' directory, supports fallback to English, and exposes LoadString and LoadStringList functions. The locale_windows.go file implements platform-specific locale detection via Windows API. This pattern is reusable for any Go application needing simple i18n without external dependencies.

file: locale.go ↗ | tags: #i18n #localization #embedded-files
Last analyzed: 2026-09-26 00:20:34.887101
Next check: 2026-10-03 00:20:34.882568
$ submit: