Files
driftwood/Cargo.toml
lashman fa28955919 Implement Driftwood AppImage manager - Phases 1 and 2
Phase 1 - Application scaffolding:
- GTK4/libadwaita application window with AdwNavigationView
- GSettings-backed window state persistence
- GResource-compiled CSS and schema
- Library view with grid/list toggle, search, sorting, filtering
- Detail view with file info, desktop integration controls
- Preferences window with scan directories, theme, behavior settings
- CLI with list, scan, integrate, remove, clean, inspect commands
- AppImage discovery, metadata extraction, desktop integration
- Orphaned desktop entry detection and cleanup
- AppImage packaging script

Phase 2 - Intelligence layer:
- Database schema v2 with migration for status tracking columns
- FUSE detection engine (libfuse2/3, fusermount, /dev/fuse, AppImageLauncher)
- Wayland awareness engine (session type, toolkit detection, XWayland)
- Update info parsing from AppImage ELF sections (.upd_info)
- GitHub/GitLab Releases API integration for update checking
- Update download with progress tracking and atomic apply
- Launch wrapper with FUSE auto-detection and usage tracking
- Duplicate and multi-version detection with recommendations
- Dashboard with system health, library stats, disk usage
- Update check dialog (single and batch)
- Duplicate resolution dialog
- Status badges on library cards and detail view
- Extended CLI: status, check-updates, duplicates, launch commands

49 tests passing across all modules.
2026-02-26 23:04:27 +02:00

47 lines
855 B
TOML

[package]
name = "driftwood"
version = "0.1.0"
edition = "2021"
license = "GPL-3.0-or-later"
[dependencies]
gtk = { version = "0.11", package = "gtk4", features = ["v4_16"] }
adw = { version = "0.9", package = "libadwaita", features = ["v1_6"] }
glib = "0.22"
gio = "0.22"
# Database
rusqlite = { version = "0.33", features = ["bundled"] }
# CLI
clap = { version = "4", features = ["derive"] }
# File hashing
sha2 = "0.10"
# Time
chrono = "0.4"
# XDG directories
dirs = "6"
# Human-readable sizes
humansize = "2"
# HTTP client (sync, lightweight - for update checks)
ureq = { version = "3", features = ["json"] }
# JSON parsing
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Logging
log = "0.4"
env_logger = "0.11"
# Temp directories (for AppImage extraction)
tempfile = "3"
[build-dependencies]
glib-build-tools = "0.22"