How quirky1869/glideftp works
GlideFTP is a Wails desktop FTP/SFTP client. Users configure or select a saved site, connect to one or more servers, browse local and remote files, and queue transfers; the queue reports progress and outcomes in the UI. The Go application API mediates frontend calls to connection, filesystem, site, settings, and transfer services. The README documents additional settings, localization, themes, notifications, and site import/export capabilities; those are represented where paths are supported by the tree. Some backend wiring is inferred only from the sampled API and excerpts, so uncertain links are omitted.
Main entry points: app.go Wails app API · App.svelte Main workspace · connection.js Connection state · manager.go Connection manager
Components 25
Desktop interface
- Main workspace
frontend/src/App.svelte - Site manager
frontend/src/components/SiteManager.svelte - Connection bar
frontend/src/components/ConnectionBar.svelte - File browser
frontend/src/components/FileBrowser.svelte - Transfer queue
frontend/src/components/TransferQueue.svelte - Settings panel
frontend/src/components/SettingsPanel.svelte - Notifications
frontend/src/components/NotifyModal.svelte - Connection state
frontend/src/stores/connection.js - Transfer state
frontend/src/stores/transfers.js - Settings state
frontend/src/stores/settings.js - Localization
frontend/src/i18n/index.js
Application bridge
- Wails app API
app.go
FTP client services
- Connection manager
internal/connection/manager.go - FTP transport
internal/connection/ftp.go - SFTP transport
internal/connection/sftp.go - Transfer queue
internal/transfer/queue.go - Local filesystem
internal/fs/local.go
Configuration and state
- Saved sites
internal/sites/sites.go - App settings
internal/settings/settings.go - Password keyring
internal/keyring/keyring.go - Site encryption
internal/crypto/crypto.go
Other components
- User
- FTP/SFTP server
- Operating system
- OS keyring
Connections 31
- User → Main workspace: operates
- Main workspace → Connection state: manages sessions
- Main workspace → Transfer state: initializes queue
- Main workspace → Settings state: loads settings
- Main workspace → Notifications: shows alerts
- Site manager → Wails app API: site operations
- Site manager → Connection state: starts connection
- Connection bar → Connection state: connects
- File browser → Connection state: browses files
- Transfer queue → Transfer state: manages jobs
- Settings panel → Settings state: edits preferences
- Main workspace → Localization: renders translations
- Connection state → Wails app API: invokes API
- Transfer state → Wails app API: invokes API
- Settings state → Wails app API: invokes API
- Wails app API → Connection manager: controls connections
- Wails app API → Saved sites: manages sites
- Wails app API → App settings: loads and saves
- Wails app API → Password keyring: reads and writes passwords
- Wails app API → Transfer queue: queues transfers
- Wails app API → Local filesystem: local file operations
- Wails app API → Site encryption: encrypts site exports
- Connection manager → FTP transport: uses FTP client
- Connection manager → SFTP transport: uses SFTP client
- FTP transport → FTP/SFTP server: FTP traffic
- SFTP transport → FTP/SFTP server: SSH/SFTP traffic
- Transfer queue → Local filesystem: reads and writes local files
- Transfer queue → Connection manager: uses active connection
- Local filesystem → Operating system: accesses files
- Password keyring → OS keyring: stores credentials
- App settings → Operating system: persists preferences