lashman 4b939f044a Add AppImageHub.com OCS API as primary catalog source
Integrate the Pling/OCS REST API (appimagehub.com) as the primary catalog
source with richer metadata than the existing appimage.github.io feed.

Backend:
- Add OCS API fetch with pagination, lenient JSON deserializers for loosely
  typed numeric fields, and non-AppImage file filtering (.dmg, .exe, etc.)
- Database migration v17 adds OCS-specific columns (ocs_id, downloads, score,
  typename, personid, description, summary, version, tags, etc.)
- Deduplicate secondary source apps against OCS entries
- Shrink OCS CDN icon URLs from 770x540 to 100x100 for faster loading
- Clear stale screenshot and icon caches on sync
- Extract GitHub repo links from OCS HTML descriptions
- Add fetch_ocs_download_files() to get all version files for an app
- Resolve fresh JWT download URLs per slot at install time

Detail page:
- Fetch OCS download files on page open and populate install SplitButton
  with version dropdown (newest first, filtered for AppImage only)
- Show OCS metadata: downloads, score, author, typename, tags, comments,
  created/updated dates, architecture, filename, file size, MD5
- Prefer ocs_description (full HTML with features/changelog) over short
  summary for the About section
- Add html_to_description() to preserve formatting (lists, paragraphs)
- Remove redundant Download link from Links section
- Escape ampersands in Pango markup subtitles (categories, typename, tags)

Catalog view:
- OCS source syncs first as primary, appimage.github.io as secondary
- Featured apps consider OCS download counts alongside GitHub stars

UI:
- Add pulldown-cmark for GitHub README markdown rendering in detail pages
- Add build_markdown_view() widget for rendered markdown content
2026-02-28 20:33:40 +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%