Xydra is a modern WPF-based download manager built using C# and the MVVM (Model–View–ViewModel) architectural pattern. It provides a clean user interface, real-time updates via WebSocket, theme customization, and structured download management.
Xydra is designed to be:
- Cleanly structured
- Scalable
- Maintainable
- Responsive
- Architecturally sound (MVVM-compliant)
The project separates UI, business logic, and services to ensure clarity and extensibility.
- Add and manage downloads
- Real-time download status updates (WebSocket integration)
- Detailed download view
- Download scheduling
- Light and Dark theme support
- Centralized settings management
- Delete confirmation dialog
- Update download link dialog
- Modular and extensible architecture
Xydra/ │ ├── Assets/ # Application icons and branding resources ├── Converters/ # WPF value converters ├── Models/ # Data models ├── Resources/ # Themes, styles, and color definitions ├── Services/ # Core services (WebSocket, Settings, Theme) ├── ViewModels/ # MVVM ViewModels and commands ├── Views/ # WPF Windows and dialogs │ ├── App.xaml # Application entry point ├── App.xaml.cs ├── Xydra.csproj # Project configuration └── app.manifest
Xydra follows the MVVM pattern:
Represent application data and domain entities.
Contain application logic and expose bindable properties to the UI.
MainViewModelAddDownloadViewModelDownloadDetailsViewModelViewModelBaseRelayCommand
WPF Windows and dialogs responsible only for presentation.
MainWindowAddDownloadWindowDownloadDetailsWindowSchedulerWindowSettingsWindowDeleteConfirmDialogUpdateLinkDialog
Encapsulate non-UI logic.
WebSocketService– Handles real-time communication.SettingsService– Manages persistent application settings.ThemeService– Controls dynamic theme switching.
The application connects to a backend service via WebSocket.
Responsibilities handled by WebSocketService:
- Connection management
- Message handling
- Event propagation to ViewModels
Ensure the backend WebSocket server is running before starting the application.
Themes are located inside: Resources/ ├── LightTheme.xaml ├── DarkTheme.xaml ├── Colors.xaml └── Styles.xaml
Themes can be switched dynamically through ThemeService.
- Windows 10 / Windows 11
- .NET SDK (version specified in
Xydra.csproj) - Visual Studio 2022 or later
- WPF workload installed
- Clone or extract the repository.
- Open
Xydra.csprojin Visual Studio. - Restore NuGet packages if prompted.
- Build the solution.
- Run the project.
- Strict MVVM implementation
- Separation of concerns
- Service-oriented architecture
- Clean command pattern usage
- Extensible and modular structure
- Download queue prioritization
- Bandwidth throttling
- System tray integration
- Auto-update support
- Download analytics dashboard
- Persistent download resume support
MIT License - See LICENSE file for details.
Developed as part of the Xydra project.
If needed, this README can be extended with:
- Screenshots
- Backend API documentation
- Contribution guidelines
- Deployment instructions