php PHAR archive streaming parser for nodejs
Last updated 7 months ago by frodon .
ISC · Repository · Bugs · Original npm · Tarball
$ cnpm install phar-stream 
SYNC missed versions from official npm registry.


phar-stream is a streaming phar archive (PHP archive) parser for nodejs. It is streams2 and operates purely using streams which means you can easily extract/parse phar without ever hitting the file system. phar-stream use es7 async/await syntax and require node 8+.

npm install phar-stream

Build Status Coverage Status Version License


phar-stream exposes a single stream, extract which extracts phar.


If you want to unpack directories on the file system check out phar-fs which provides file system bindings to this module.


To extract a stream use phar.extract() and listen for extract.on('entry', (header, stream, next) )

const phar  = require('phar-stream');
const extract = new phar.extract()

extract.on('entry', function(header, stream, next) {
  // header is the phar header
  // stream is the content body (might be an empty stream)
  // call next when you are done with this entry

  stream.on('end', function() {
    next() // ready for next entry

  stream.resume() // just auto drain the stream

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

// archive = fs.createReadStream('somepath.phar');

The phar archive is streamed sequentially, meaning you must drain each entry's stream as you get them or else the main extract stream will receive backpressure and stop reading.


The header object using in entry should contain the following properties. Most of these values can be found by stat'ing a file.

  entry_name: 'path/to/this/entry.txt',
  entry_size: 1314,        // entry size. defaults to 0
  entry_mtime: new Date(), // last modified date for entry
  entry_crc32: 15151, // entry CRC32 checksum


  • Implement phar-stream.pack to create phar archive (no need for now)
  • Get rich or die tryin'

Credits / related



Maintainers (2)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 7
Dependencies (3)
Dev Dependencies (3)
Dependents (1)

Copyright 2014 - 2018 © |