I love this algorithm. There's an optimized Rust implementation, used in the de-facto-std regex crate in some situations where the lazy DFA is less performant.
If you are dealing with large number of patterns, e.g. firewalls, antivirus or other security appliances, it's better to use VectorScan via hyperscan-tokio-sys, based on Intel's highly optimized HyperScan library, but adding ARM64 NEON support.
One of the reasons why my Markdown editor, KeenWrite, can evaluate hundreds of R expressions in real time is thanks to the Aho-Corasick Algorithm. Robert Bor make a fantastic implementation for Java:
novedevo | 4 hours ago
I love this algorithm. There's an optimized Rust implementation, used in the de-facto-std
regexcrate in some situations where the lazy DFA is less performant.fazalmajid | an hour ago
If you are dealing with large number of patterns, e.g. firewalls, antivirus or other security appliances, it's better to use VectorScan via hyperscan-tokio-sys, based on Intel's highly optimized HyperScan library, but adding ARM64 NEON support.
ThomasAdam | 2 hours ago
I worked for a company years ago which developed a web content filter.
This was one of the main algorithms we used to scan for words, to be able to give a weighing to them, etc.
thangalin | an hour ago
One of the reasons why my Markdown editor, KeenWrite, can evaluate hundreds of R expressions in real time is thanks to the Aho-Corasick Algorithm. Robert Bor make a fantastic implementation for Java: