Per Adnrei's request I'm filing this in case somebody has the time to do it. It have long bugged me that Phobos std.algorithm.find is slow. Far slower then strstr (esp on *nix where it competes against GLIBC[1]). The current state of the art in searching substring with O(1) space requirement is Two-Way algorithm: http://www-igm.univ-mlv.fr/~lecroq/string/node26.html which is linear in time. I could imagine it would be interesting to implement a generic version as well. [1] See a relevant bug report and discussion e.g on glibc http://sourceware.org/bugzilla/show_bug.cgi?id=5514
This was done https://dlang.org/blog/2016/06/16/find-was-too-damn-slow-so-we-fixed-it/