text-similarity-node
High-performance and memory efficient native C++ text similarity algorithms for Node.js
z-algorithm
This algorithm finds all occurrences of a pattern in a text in linear time. Let length of text be n and of pattern be m, then total time taken is O(m + n) with linear space complexity.