Nature Preceded Machines
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    piecespublic

    pieces

    pieces is a utility that takes a file (browser) or file path (node) and a piece length, and generates a collection of SHA1 hashes that can be used when creating BitTorrent files.

    Build status

    Browser support

    Install

    npm install pieces
    

    Usage

    browser(ify)

    var pieces = require('pieces')
     
    var size = Math.pow(2, 14) // 16kb
     
    // Typically you’ll get the File object from
    // an input[type=file], but you you could also
    // just create your own Blob.
     
    var input = document.createElement('input')
    input.type = 'file'
    input.onchange = function(e) {
      var file = e.target.files[0]
     
      pieces(file, size, function(error, array) {
        // Returns a Uint8Array of binary data
        var data = new Blob([array])
        window.open(
          URL.createObjectURL(data)
        )
      })
    }
     
    document.body.appendChild(input)

    node

    var pieces = require('pieces')
     
    var path = '/path/to/file'
    var size = Math.pow(2, 18) // 256kb
     
    // You should probably make sure the path
    // exists before running pieces
     
    pieces(path, size, function(error, buffer) {
      // Returns a Buffer of binary data
      console.log(buffer.toString())
    })

    Events

    When you start processing larger files, you’ll notice that it takes a while for the callback to be fired (particularly in browsers). To make this more managable, the pieces object emits progress, data, and end events.

    Example

    Where the implementation differences are denoted with a pipe (ie. browser|server).

    var pieces = require('pieces') 
    var file|path = … 
    var size = … 
     
    pieces(file|path, size)
      .on('progress', function(percentage) {
        // percentage is a Number between 0 and 100
      })
      .on('data', function(bytes) {
        // bytes is a Uint8Array|Buffer containing a SHA1
      })
      .on('end', function() {
        // And we’re done.
      })

    License

    MIT

    Keywords

    none

    install

    npm i pieces

    Downloadsweekly downloads

    14

    version

    0.2.0

    license

    none

    last publish

    collaborators

    • avatar