This project is currently in a very early stage of development (pre-alpha). Expect bugs, incomplete features, and frequent breaking changes. It is primarily intended for developers interested in contributing or experimenting.
A modern, multi-segmented download manager built with React (Electron) for the frontend and Python for the backend.
- Multi-segmented Downloads: Utilizes multiple connections for potentially faster downloads (powered by
pypdl). - Cross-Platform: Built with Electron and Python, aiming for compatibility across major OSes (Windows, macOS, Linux).
- Modern UI: React-based interface for a clean user experience.
- Open Source: This project is open source and available on GitHub for anyone to contribute.
- Frontend: React, Electron, Tailwind, light SCSS/CSS for advanced features
- Backend: Python 3.13.3
- Core Download Logic: pypdl library
- Inter-Process Communication (IPC): Electron IPC
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
-
Clone the repository:
git clone https://github.com/Arnob90/DashLoad.git cd DashLoad -
Set up the Python Backend:
-
Navigate to the backend directory (./src/backend/)
-
Activate the virtual environment
source ./venv/bin/activate.sh -
Install Python dependencies:
pip install -r requirements.txt
-
Turn it into editable install
pip install -e . -
-
Set up the React Frontend:
-
Install Node.js dependencies:
npm install
-
-
Make sure you are in the root directory.
-
Give the backend run script permissions
chmod +x ./src/backend/start-backend.fish
-
Run the development script:
# Using npm npm run start -
To only start the backend
npm run start:backend- This should compile the React code and launch the Electron application.
- Abide by common sense(don't try to push malware lmao)
- Follow conventions in source
- Try to type as much as possible. Prefer typescript over JS and typed python. No duck typing please unless you absolutely have to.
- Keep PRs focused and readable.
- Please use the issue tracker to report bugs and feature requests. (Testing is very appreciated)
- Feel free to fork if you feel like your PR will do much good.
- Please be nice.
- Core download logic
- Multi-segmented downloads
- Add tests
- Serialization and deserialization of downloads
- Torrenting
- Bug free and stable
- Performance optimization(maybe move away from electron/python)
- Extensibility