Popular C libraries are:
Both have a ..64
variant that supports input strings longer than 2GB
.
Rust wrappers:
- divsufsort: rust reimplementation, does not support large inputs.
- cdivsufsort: c-wrapper, does not support large inputs
- livdivsufsort-rs: c-wrapper, does support large inputs
- sais: unrelated to the original library; does not implement a linear time algorithm anyway
- libsais-rs: Daniel Liu’s fork-of-fork of the original, but not on crates.io. Supports multithreading using OpenMP and wraps both the original and 64bit version.
- simple-saca: Daniel Liu’s bounded-context suffix array construction that is faster than divsufsort and libsais, but does not return a true fully sorted suffix array.