I'm looking for a basic implementation of the BWT and inverse. There are many implementations online (here's just one list) but I'm looking for a research friendly library. Most of the implementations are full compression implementations with encoders as well, but I'm looking for pure BWT mostly for experimenting with full text index searching and such.
Ideally I'd just love some C functions with an API sort of like:
size_t BWTransform(const unsigned char *inputData, size_t bytecount, unsigned char *output);
where the return value is a index to the first byte of output (as opposed to inserting a sentenel).
Similarly, I'd like a transform/untransform pair for a bitwise BWT.
I'm more interested in clear code than superfast performance, but to start with I'll be using it as a black box anyway.
I'd appreciate a recommendation of where to get such libraries, or which compressor would be most appropriate for me to dig into and try to isolate the BWT routines myself.
I've already started doing that using bzip2 but that's only a bytewise version, and I may be reinventing the wheel anyway.