@confuzzle/burrows-wheeler
v1.0.0
Published
naive Burrows-Wheeler transform
Downloads
18
Maintainers
Readme
@confuzzle/burrows-wheeler
This package contains a naive, inefficient implementation of the Burrows-Wheeler transform, which only works for input sizes of less than 64KiB.
For details for how this can be used together with the Move-to-front transform to improve compression, see this excellent blog post by Tommy Reddad. Another resource that may be useful is this previous assignment set for the COS226 course at Princeton in 2003.
See also
- @confuzzle/move-to-front - naive Move-to-front transform implementation
- @thi.ng/range-coder - useful for compressing the transformed result
Functionality
This package provides two functions:
forward(s)
, which runsBuffer.from(s)
and performs the forward transform on the resultinverse(x)
, which runsBuffer.from(x)
performs the inverse transform on the result Both functions return aBuffer
object.
Example Usage
const bwt = require('@confuzzle/burrows-wheeler');
const s = 'abracadabra';
const t = bwt.forward(s);
const inv = bwt.inverse(t).toString();
console.log(inv) // abracadabra