A cross-platform desktop Aria2 download manager built with Flutter, providing a user-friendly interface to manage Aria2 download instances and tasks.
-
Instance Management
- Add, edit, and delete Aria2 instances (both local and remote)
- Connect/disconnect from instances
- Automatic connection to last used instance
- Status monitoring for all instances
-
Download Management
- Task list display with filtering options
- Task operations: add, delete, pause, resume
- Task details viewing
- Download speed control
-
Configuration
- Global settings management
- Instance-specific configurations
- Settings persistence
- Windows
- macOS
- Linux
- Frontend: Flutter
- State Management: Provider
- Network: Dio, WebSocket Channel
- Local Storage: Shared Preferences, Path Provider
- Process Management: Process Run
- UI Components: Material Design
- Flutter SDK (latest stable version recommended)
- Dart SDK (compatible with your Flutter version)
- For Windows: Visual Studio with C++ workload
- For macOS: Xcode
- For Linux: build-essential, cmake, ninja-build
-
Clone the repository:
git clone https://github.com/yourusername/aria2-desktop.git cd aria2-desktop -
Install dependencies:
flutter pub get
-
Run the application:
# For Windows flutter run -d windows # For macOS flutter run -d macos # For Linux flutter run -d linux
- Go to the "Instances" page
- Click the "+" button to add a new instance
- Configure the instance settings:
- Name: A descriptive name for the instance
- Type: Local or Remote
- Protocol: HTTP, HTTPS, WS, or WSS
- Host: The hostname or IP address
- Port: The port number
- Secret: RPC secret (if configured)
- For local instances: Path to Aria2 executable
- Save the instance
- Click on an instance to connect to it
- Connect to an Aria2 instance
- Go to the "Downloads" page
- Use the "+" button to add new download tasks
- Use the controls to pause, resume, or remove tasks
- Click on a task to view detailed information
- Go to the "Settings" page
- Enable/disable auto-connection to last used instance
- Configure other global settings
lib/
├── app.dart # Main application widget
├── components/ # Reusable UI components
├── main.dart # Entry point
├── managers/ # Business logic managers
├── models/ # Data models
├── pages/ # UI pages
└── services/ # Services (RPC client, etc.)
Aria2Instance: Represents an Aria2 instance configurationSettings: Global application settingsGlobalStat: Global download statistics