A ruTorrent-based client build in Flutter
The project is a flutter application for ruTorrent web interface. The app communicates with ruTorrent's backend via REST APIs to display the information about the torrents and the functionality to control its basic features. It also supports some plugin functionalities as provided in the ruTorrent web.
Additionally, you can also stream torrents from your server (or seedbox) and download them locally to your mobile device (a save offline feature), which makes torrenting a seamless experience for ruTorrent users.
ruTorrent is the most popular web interface for rtorrent, which is possibly the most used BitTorrent client in Linux. It is mostly a web application, but it has its own backend that connects to rtorrent.
In short:
rtorrent ⇒ The BitTorrent client, a console-based tool that also has an API to interact with it.
ruTorrent ⇒ A web interface for rtorrent that uses that API. It also does other things, for example, it can download torrents from an RSS feed. You configure RSS feeds in rutorrent's web interface, but there's also a backend service (written in PHP) that is part of rutorrent to do the actual download.
Thus, our Flutter application talks with ruTorrent's backend service to provide a native interface.
In order to use this flutter application you should have ruTorrent configured on your system, after which you can connect your mobile on the same network as your system and use the app by entering the configuration (IP address).
If you find any difficulty to run ruTorrent and rtorrent on your system, you can use this docker image.
Though the primary usage of this application is to control ruTorrent hosted on your seedbox account.
A seedbox is a dedicated BitTorrent server. Oftentimes they are rented out by companies called seedbox providers.
Seedboxes usually have a high speed Internet connection. This allows users to download torrents quickly and seed the torrents for a long time.
You can learn more about seedbox here.
- Clone the repository from GitHub:
git clone https://github.com/CCExtractor/rutorrent-flutter
- Navigate to project's root directory:
cd rutorrent-flutter
- Check for Flutter setup and connected devices:
flutter doctor
- For IOS
- Delete ios folder from the root directory
/ios
- From the root directory
flutter create -i swift --project-name rutorrent .
- Uncomment
platform :ios, '9.0'
from ios/Podfile - Cd into the new ios directory
cd ios
- From the ios directory
pod install
- Run the app:
flutter run
Contribution to the project can be made if you have some improvements for the project or if you find some bugs. You can contribute to the project by reporting issues, forking it, modifying the code and making a pull request to the repository.
Please make sure you specify the commit type when opening pull requests:
feat: The new feature you're proposing
fix: A bug fix in the project
style: Feature and updates related to UI improvements and styling
test: Everything related to testing
docs: Everything related to documentation
refactor: Regular code refactoring and maintenance
You may join the gsoc-rutorrent channel of CCExtractor community through slack and propose improvements to the project.
- CCExtractor Development on Slack
The project is released under the MIT License. The license can be found here.
For help getting started with Flutter, view online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.