rqbit/TODO.md
2023-11-25 18:48:23 +00:00

1.5 KiB

  • when we have the whole torrent, there's no point talking to peers that also have the whole torrent and keep reconnecting to them.
  • per-file stats
  • [x (partial)] per-peer stats
  • use some concurrent hashmap e.g. flurry or dashmap
  • tracing instead of logging. Debugging peers: RUST_LOG=[{peer=.*}]=debug test-log for tests
  • reopen read only is bugged
  • initializing/checking
    • blocks the whole process. Need to break it up. On slower devices (rpi) just hangs for a good while
    • checking torrents should be visible right away
  • server persistence
    • it would be nice to restart the server and keep the state
  • torrent actions
    • pause/unpause
    • remove including from disk
  • DHT
    • for torrents with a few seeds might be cool to re-query DHT once in a while.
    • it's sending many requests now way too fast, locks up Mac OS UI annoyingly

someday:

  • cancellation from the client-side for the lib (i.e. stop the torrent manager)

refactor:

  • where are peers stored

  • http api pause/unpause etc

  • when a live torrent fails writing to disk, it should transition to error state

  • something is wrong when unpausing - can't finish. Recalculate needed/have from chunk tracker.

  • silence this: WARN torrent{id=0}:external_peer_adder: librqbit::spawn_utils: finished with error: no longer live

  • start from error state should be possible from UI

  • if the torrent was completed, not need to re-check it

  • checking is very slow on raspberry