How zeromac/vascular works
Vascular is a Qt desktop transfer manager with a WebSocket browser bridge. Users manage transfer tasks and settings through the application; browser clients can submit upload/download commands, which enter the task-management and transfer runtime. The graph includes task persistence, resumable-transfer checkpoints, and settings storage. The tree and excerpts support these major components, but do not show the QML files or enough implementation to confirm every dispatcher, worker, and host connection; uncertain wiring is omitted.
Main entry points: TaskService.cpp Task Service · TransferExecutor.cpp Transfer Executor · AppController.cpp App Controller · SettingsService.cpp Settings Service
Components 21
Application
- Application Host
src/app/ApplicationHost.cpp - App Controller
src/app/AppController.cpp - Task Models
src/model/TransferTaskModel.cpp - Settings Model
src/model/AppSettings.cpp - Settings Service
src/core/SettingsService.cpp
Browser Bridge
- WebSocket Bridge
src/bridge/BrowserBridgeService.cpp - Command Dispatcher
src/bridge/BrowserCommandDispatcher.cpp - Upload Handler
src/bridge/UploadCommandHandler.cpp - Download Handler
src/bridge/DownloadCommandHandler.cpp
Transfer Runtime
- Task Service
src/core/TaskService.cpp - Task Scheduler
src/core/TaskScheduler.cpp - Transfer Executor
src/core/TransferExecutor.cpp - Upload Worker
src/core/UploadWorker.cpp - Download Worker
src/core/DownloadWorker.cpp - Progress Coalescer
src/core/TaskUpdateCoalescer.cpp
Persistence
- Task Repository
src/repository/TaskRepository.cpp - SQLite Task Store
src/repository/TaskDatabase.cpp - Settings Repository
src/repository/SettingsRepository.cpp
Other components
- Desktop User
- Browser Client
- Transfer Endpoint
Connections 23
- Desktop User → App Controller: manages tasks
- Application Host → App Controller: exposes to UI
- App Controller → Task Service: controls tasks
- App Controller → Settings Service: updates settings
- App Controller → WebSocket Bridge: reads bridge status
- Task Service → Task Models: updates task state
- Task Service → Task Repository: loads and saves
- Task Service → Task Scheduler: schedules tasks
- Task Service → Transfer Executor: controls transfers
- Transfer Executor → Upload Worker: runs uploads
- Transfer Executor → Download Worker: runs downloads
- Transfer Executor → Transfer Endpoint: transfers data
- Transfer Executor → Progress Coalescer: reports progress
- Progress Coalescer → Task Service: delivers updates
- Task Repository → SQLite Task Store: reads and writes
- Settings Service → Settings Repository: loads and saves
- Settings Service → Settings Model: maintains settings
- Browser Client → WebSocket Bridge: sends commands
- WebSocket Bridge → Command Dispatcher: dispatches commands
- Command Dispatcher → Upload Handler: routes uploads
- Command Dispatcher → Download Handler: routes downloads
- Upload Handler → Task Service: creates upload tasks
- Download Handler → Task Service: creates download task