4b939f044afa58ed55b59b111a88d29c484469bc
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
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
Releases
1
Driftwood v0.1.0
Latest
Languages
Rust
98%
CSS
1.4%
Shell
0.4%
Meson
0.2%