Skip to content

hax/faar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

FAst ARchiver for Node.js

Why faar?

Because current packages for archive/unarchive (archiver, Decompress, tar-stream/tar-fs, etc.) are too slow. (See [performance comparison](#Performance Comparison))

They are slow not because the code quality, but due to Node.js limitations on usage of multi-core and file system.

The easiest way to fix that is just use full-fledged shell tools such as tar, pigz, lz4... That's what this package do.

Install

npm install faar

Usage

var fa = require('faar')

Promise.resolve(['./test1', './test2'])
	.then(items => {
		console.log('archiving', items)
		return fa.archive(items, './archives/test')
	})
	.then(arcFile => {
		console.log('...to', arcFile)
		return arcFile
	})
	.then(arcFile => {
		console.log('unarchiving', arcFile)
		return fa.unarchive(arcFile, './')
	})
	.then(items => {
		console.log('...to', items)
		return items
	})

Configuration

var fa = require('faar')

// register new archive format
fa.register('lzo', {
	compress: 'lzop',
	uncompress: 'unlzop',
})
fa.register('7z')
// prefer lzo, if not available fallback to gzip
fa.prefer(['lzo', 'pigz', 'gzip'])

Built-in Configurations

Archive Tools

gzip, pigz, zip, 7z, bzip2, xz, lzop, lz4

Default Preference

lz4, pigz, gzip, zip

Performance Comparison

TBD

About

FAst ARchiver for Node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published