torrent-piece

3.0.0 • Public • Published

torrent-piece ci npm downloads javascript style guide

Torrent piece abstraction

Sauce Test Status

Also works in the browser with browserify! This module is used by WebTorrent and torrent-stream.

install

npm install torrent-piece

usage

import Piece from 'torrent-piece'

Piece.BLOCK_LENGTH // 16384

const pieceLength = Piece.BLOCK_LENGTH * 5
const piece = new Piece(pieceLength)
piece.missing // 81920

piece.reserve() // 0
piece.set(0, someBuffer0)

piece.reserve() // 1
piece.reserve() // 2
piece.reserve() // 3

piece.set(1, someBuffer1)
piece.set(2, someBuffer2)
piece.set(3, someBuffer3)

piece.reserve() // 4
piece.cancel(4) // cancel the reservation of a chunk

piece.reserve() // 4 (given out again)
piece.set(4, someBuffer4)

// handy functions
piece.chunkLength(0) // 16384
piece.chunkOffset(0) // 0

// eventually, when no more chunks left...

piece.reserve() // -1 (signal that all chunks are reserved)
piece.missing // 0

const pieceBuffer = piece.flush()
console.log(pieceBuffer)

license

MIT. Copyright (c) Feross Aboukhadijeh and WebTorrent, LLC.

/torrent-piece/

    Package Sidebar

    Install

    npm i torrent-piece

    Weekly Downloads

    3,311

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    7.31 kB

    Total Files

    4

    Last publish

    Collaborators

    • alxhotel
    • feross
    • mafintosh
    • flet
    • watson
    • diegorbaquero
    • hicom150
    • jhiesey
    • webtorrent-bot