qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
26.92k stars 3.88k forks source link

More separation between Public torrents and Private torrents - but also more integration - as follows #21230

Open Destroyarr opened 3 weeks ago

Destroyarr commented 3 weeks ago

Suggestion

More separation between Public torrents and Private torrents - but also more integration - as follows

multi instance controlled from singe UI so each instance has different settings but also complete integration

  1. Separate settings for Public torrents

    • add uptodate public tracker list and cleanup tracker list
    • seed settings to improve seeding of the Public torrent without impacting the seedbox resources too much - separate limits Private torrents ideally automatically do seed "forever" where Public torrents ideally automatically - seed in a way that minimises any noticable impact to the seedbox resources - put a lot of limits only for Private torrents by default
    • limit upload speeds
    • limit IO
    • limit and hide annoyances do not prompt any normie user to stop seeding if the torrent client causes their laptop to lag or annoys them somehow - hide it and make that low priority
    • actually if you do it like how the webbrowsers do it nowadays you can separate the lowpriority stuff in a separate process to be able to apply Efficiency mode to the process
  2. Integration - do the smart detection of same-ness of contents - where same torrent already exists on the Seedbox

    • treat the same content as One torrenting unit to help the enduser deal with the content
    • even if the files are renamed and different format
    • even if the files different parts of same collection - one torrent is video one torrent is audio and a third torrent may be PDF - combine those in the interface, regardless if some are on public some on private trackers
  3. Do not download files that are already in the seedbox from different source, however do Seed those files

    • make it extremely easy and automatic for a bunch of seeding to happen
    • put measures in place to prevent bogging down the seedbox resources when this seeding happens
  4. Treat the seedobox as a resource pool - know and control each resource type on the machine

    • storage - let user Select their directories with seedable stuff to get knowledge about each sharable piece of content in there
    • network - more intelligently seed stuff without affecting the network negatively
    • IO - reduce IO load - use separate caches, make use of RAM
    • Make it automatic to assimilate a separate PC/host for a seedbox and autosync files and .torrents from main seedbox
  5. Integrate with more Apps

    • API-fy the local EXE expose APIs
    • integrate with everything more easily all other p2p-type apps out there
    • integrate with format converters

Use case

Extra info/examples/attachments

Steal design ideas from:

Invite all other Devs and Apps to join the efforts and contribute their ideas to a single App to

Destroyarr commented 3 weeks ago

Enhanced Torrent Client Proposal: Improving Usability, Performance, and Integration

Executive Summary

This proposal outlines a comprehensive enhancement to existing torrent client software, focusing on improved resource management, user experience, and integration capabilities. The primary goals are to increase user adoption, streamline the torrenting process, and foster a more robust file-sharing ecosystem.

Key Features

1. Multi-Instance Management with Unified Interface

2. Public and Private Torrent Separation

2.1 Public Torrent Optimizations

2.2 Private Torrent Handling

3. Content Integration and Smart Detection

4. Efficient Resource Management

5. Expanded Integration Capabilities

Technical Implementation

1. Process Separation

Implement a process separation model similar to modern web browsers:

2. Resource Monitoring and Control

Develop a robust resource monitoring system:

3. Content Recognition System

Create a content fingerprinting system:

4. API Development

Design a RESTful API that exposes core functionality:

User Experience Enhancements

  1. Simplified interface for "normie" users, with advanced options easily accessible.
  2. Automated content organization based on smart detection.
  3. Streamlined sharing process to encourage participation from all user demographics.

Development Roadmap

  1. Phase 1: Core architecture refactoring for multi-instance support.
  2. Phase 2: Implementation of resource management and content recognition systems.
  3. Phase 3: API development and integration capabilities.
  4. Phase 4: User interface overhaul and usability improvements.
  5. Phase 5: Beta testing and community feedback integration.

Conclusion

This enhanced torrent client aims to revolutionize the file-sharing experience by making it more accessible, efficient, and integrated. By focusing on smart resource management and user-friendly design, we can encourage wider adoption and foster a more vibrant sharing community.

We invite developers from various backgrounds to contribute their expertise and ideas to this project, with the goal of creating a unified, powerful, and user-friendly torrenting solution.