cpio-stream

streaming cpio parser and packer

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
cpio-stream
1211.4.32 years ago9 years agoMinified + gzip package size for cpio-stream in KB

Readme

cpio-stream Build Status
NPM js-standard-style
cpio-stream is a streaming cpio packer. It is basically the cpio version on tar-stream.

Support

Extraction
  • odc / old character
  • newc / new character
  • crc / new crc note: checksum will not be tested nor rejected!

Packing
  • odc / old character

Mostly following the libarchive documentation documentation. Feel free to create pull requests to add additional format support!

Packing

var cpio = require('cpio-stream')
var pack = cpio.pack()

pack.entry({name: 'my-test.txt'}, 'hello, world\n')

var entry = pack.entry({'my-stream-test.txt', size: 11}, function (err) {
  // stream was added
  // no more entries
  pack.finalize()
})

entry.write('hello')
entry.write(' world')
entry.end()

// pipe the archive somewhere
pack.pipe(process.stdout)

Extracting

var extract = cpio.extract()

extract.on('entry', function (header, stream, callback) {
  stream.on('end', function () {
    callback()
  })

  stream.resume() // auto drain
})

extract.on('finish', function () {
  // all entries read
})

pack.pipe(extract)

License

MIT, with some of the code taken from the tar-stream module by @mafintosh