fixed an ordering bug when adding a torrent in buffer form; added trackersEnabled option to Client and Torrent; enforced DHT enabling/disabling. the latter two changes make it easier to test the Clients on real torrents in isolation from external peers. also added an interesting test case to transfer ut_metadata between two local Clients, both with DHT and trackers disabled
fixed a subtle bug in storage and added more unit tests
use sub-piece granularity for downloaded estimate
merged feross' latest
fix logging spew by adding custom log opt
merge upstream
more consistent enabling/disabling of trackers/dht
LARGE CHANGE; converted Storage to async interface, added readable stream, added file/range selection, and imported the torrent/swarm/request management logic from torrent_stream
added more comments
fixed major bug in import of torrent_stream request logic with while loop and semicolons..
added optional opts to Client.add so each torrent can have a custom Storage; randomized the order of which wires are updated for better request distribution; changed piece verification failures to emit an error instead of logging to console.error so the webtorrent commandline UI can work as expected
changed piece verification errors to emit warnings since unhandled errors kill the webtorrent process
added new torrent API methods to README
small updates to readme
fixed a few bugs in the new torrent/storage/file_stream code; upstream, the webtorrent commandline now successfully streams to VLC
better approach to FSStorage in webtorrent by allowing for lazy Buffers in Pieces. storing the results of a torrent download to the filesystem works downstream in webtorrent now.
added a small comment
added support for peer blocklists in Client opts
API is not chainable. client.add() returns torrent
opts.trackers will always be set