twoway 0.2.0

Fast substring search for strings and byte strings. Optional SSE4.2 acceleration (if detected at runtime) using pcmpestri. Memchr is the only mandatory dependency. The two way algorithm is also used by rust's libstd itself, but here it is exposed both for byte strings, using memchr, and optionally using a SSE4.2 accelerated version.
Documentation

Fast substring search for strings and byte strings, using the two-way algorithm.

This is the same code as is included in Rust's libstd that powers str::find(&str), but here it is exposed with some improvements:

  • Available for byte string searches using &[u8]
  • Having an optional SSE4.2 accelerated version (if detected at runtime) which is even faster. Runtime detection requires the default std feature.
  • Using memchr for the single byte case, which is ultra fast.