It uses the same algorithms as Sux4j for rank/select (https://github.com/ot/succinct/blob/master/rs_bit_vector.hpp) but it has exhaustive unit tests and the resulting files can be memory-mapped instead of loaded in memory, which has a number of advantages.
I'm also going to release soon an optimized implementation of wavelet trees (actually a more generic variant that we are developing).
If you are using C++ you can have a look at my library of succinct data structures:
https://github.com/ot/succinct
It uses the same algorithms as Sux4j for rank/select (https://github.com/ot/succinct/blob/master/rs_bit_vector.hpp) but it has exhaustive unit tests and the resulting files can be memory-mapped instead of loaded in memory, which has a number of advantages.
I'm also going to release soon an optimized implementation of wavelet trees (actually a more generic variant that we are developing).