[rubytorrent-devel] rubytorrent

William Morgan wmorgan-rubytorrent-devel at masanjin.net
Mon Jan 10 16:53:18 EST 2005


Excerpts from Luis Felipe Strano Moraes's mail of 10 Jan 2005 (EST):
> we are interested in using rubytorrent as a project in a hackfest
> we're organizing, and I would like to know if you have any idea of
> stuff that needs to be done, or something like it.

Well, the obvious target at this point is a nice multi-download GUI
client that uses RubyTorrent, using one of the Ruby GUI toolkits. Should
be pretty easy to write. That would probably also help eliminate a lot
of bugs. :)

If you want to hack on RubyTorrent itself, there are a couple items on
my todo list. I'm not sure if any of them are hackfest kind of
challenges, but maybe so. They are:

- gzip in tracker protocol
 
  I think there are some (old) trackers out there that respond with
  gzipped data, but I can't find any. I need to find one, play with it,
  and add gzip functionality to tracker.rb.
 
- Better handling of character encoding in .torrent files.

  Right now RubyTorrent handles .utf-8 encoding only. I haven't seen any
  other encodings, but it will definitely break if it sees them. There's
  a weird convention for specifying encodings in metainfo fields that
  necessitates some restructuring of typedstruct.rb and metainfo.rb if I
  want to handle it correctly.

- Anti-snubbing
 
  The available documentation for this is pretty sparse. I'm doing
  what I can glean from what's available, filling the gaps in with
  what I *think* is reasonable, but who knows. Needs testing.
 
- End-game mode
 
  Ditto. No realy documentation on this that I could find. Needs
  testing, specifically: when should I enter end-game mode? With 10
  pieces left? With 1% of total bytes left? Etc.

- Super-seeding mode.

  Needs to be implemented.
 
- General performance tweaking and comparisons

  How well does RubyTorrent compare to Bram's BitTorrent client? To
  Azareus? To other clients? If worse, what are they doing differently?
  There are tons of tweakable things in peer.rb, both in terms of
  numbers, threshold conditions, and algorithms.

Does that help?

-- 
William <wmorgan-rubytorrent-devel at masanjin.net>


More information about the rubytorrent-devel mailing list