Changes for version 0.020 - 2008-05-22
- API changes:
- Experimental N::B::use_unicode() has been removed as wide char filenames are now handled transparently on Win32.
- New accessor: N::B::Session::name() - see N::B::Session docs
- New methods for alternative event processing:
- N::B::process_connections() - implement your own select() statement
- N::B::process_timers() - easily keep internal timers up to date
- Experimental kbps_up and kbps_down methods and N::B::new() parameters have been renamed properly: kBps_up, kBps_down. Bits. Bytes. It happens.
- Issues resolved:
- #1: Line 231 Piece.pm - Check existence of $self->session->files->[$f]->size
- New .torrent metadata integrity checks during add_session() and piece read/write.
- Log warning and undef returned when N::B::add_session() is handed a .torrent that does not contain files. (eh, it's a start)
- #1: Line 231 Piece.pm - Check existence of $self->session->files->[$f]->size
- Internal changes:
- Plenty of layout and ideology changes. None of which immediately affect usability or behavior.
- Extended charset filenames are now handled properly on Win32.
- Depends on properly encoded utf8 metadata (and the J-Pop fans rejoice)
- (The piece containing) Outgoing blocks are verified for integrity before being sent to remote peers. Just in case.
- Notes:
- Upgrade is recommended in general.
- Upgrade is strongly recommended for Win32 systems.
- New sample code: scripts/web-gui.pl
- µTorrent WebUI-like demo of alternative event processing.
- To keep N::B from growing too messy and to make co-development attractive, I'm imposing some coding standards, defining what should be internal, and deciding how N::B should behave. Between that and the nice weather, the addition of new features (DHT, UDP trackers, etc.) will be pushed back a bit. The next few releases will probably be bugfix, API, and base protocol-behavioral changes.
- Documentation rework in progress.
- What's the cutoff for apologizing for things you said in high school?
Documentation
TODO list for Perl module Net::BitTorrent
Very basic BitTorrent client
Very basic webgui leveraging the µTorrent WebUI project
Modules
BitTorrent peer-to-peer protocol class
Class Representing a Single .torrent File
BitTorrent File I/O Class
Remote BitTorrent Peer
Incoming request
Single piece
Outgoing request
Single Tier of BitTorrent Trackers
Utility functions