lashman f89aafca6a Add GitHub metadata enrichment for catalog apps
Enrich catalog apps with GitHub API data (stars, version, downloads,
release date) via two strategies: background drip for repo-level info
and on-demand fetch when opening a detail page.

- Add github_enrichment module with API calls, asset filtering, and
  architecture auto-detection for AppImage downloads
- DB migrations v14/v15 for GitHub metadata and release asset columns
- Extract github_owner/repo from feed links during catalog sync
- Display colored stat cards (stars, version, downloads, released) on
  detail pages with on-demand enrichment
- Show stars and version on browse tiles and featured carousel cards
- Replace install button with SplitButton dropdown when multiple arch
  assets available, preferring detected architecture
- Disable install button until enrichment completes to prevent stale
  AppImageHub URL downloads
- Keep enrichment banner visible on catalog page until truly complete,
  showing paused state when rate-limited
- Add GitHub token and auto-enrich toggle to preferences
2026-02-28 16:49:13 +02:00

Driftwood

A modern GTK4/libadwaita AppImage manager for GNOME desktops.

Driftwood discovers, inspects, integrates, updates, and audits AppImage files with a clean GNOME-native interface built for the Wayland era.

Features

  • Library management - Scan directories to discover AppImages, view them in grid or list mode with status badges for FUSE, Wayland, and update status
  • Desktop integration - Create .desktop files and install icons with one click
  • FUSE and Wayland detection - Automatically detect compatibility and suggest launch methods (direct, extract-and-run, or sandboxed)
  • Update checking - Read embedded update information (GitHub Releases, GitLab, zsync) and check for newer versions
  • Security scanning - Extract bundled shared libraries and check them against the OSV.dev vulnerability database
  • Duplicate detection - Find AppImages that are different versions of the same app or identical files in different locations
  • Disk footprint analysis - Discover config, data, and cache files associated with each AppImage
  • Sandboxing - Optional Firejail sandbox support per-app
  • Orphan cleanup - Detect and remove .desktop files for AppImages that no longer exist
  • CLI interface - Full command-line access to all core features

Requirements

  • GTK 4.16+
  • libadwaita 1.6+
  • SQLite 3
  • gettext

Optional:

  • firejail (for sandboxed launches)
  • fuse2/fuse3 (for AppImage FUSE mounting)
  • appimageupdate (for delta updates)

Building from source

# Development build (uses cargo directly)
cargo build
cargo run

# System installation (uses meson)
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C build

CLI usage

# Scan configured directories for AppImages
driftwood scan

# List all known AppImages
driftwood list
driftwood list --format json

# Inspect a specific AppImage
driftwood inspect ~/Applications/Firefox.AppImage

# Integrate into desktop menu
driftwood integrate ~/Applications/Firefox.AppImage

# Check for updates
driftwood check-updates

# Run a security scan
driftwood security
driftwood security ~/Applications/Firefox.AppImage

# Launch with tracking
driftwood launch ~/Applications/Firefox.AppImage
driftwood launch --sandbox ~/Applications/Firefox.AppImage

# Find duplicates
driftwood duplicates

# Show disk footprint
driftwood footprint ~/Applications/Firefox.AppImage

# System status
driftwood status

# Clean orphaned entries
driftwood clean-orphans

Packaging

  • Flatpak: See build-aux/app.driftwood.Driftwood.json
  • Arch Linux (AUR): See packaging/PKGBUILD

License

GPL-3.0-or-later

Description
A modern GTK4/libadwaita AppImage manager for GNOME desktops
Readme CC0-1.0 2 MiB
2026-03-01 14:56:21 +02:00
Languages
Rust 98%
CSS 1.4%
Shell 0.4%
Meson 0.2%