package aho-corasick

  1. Overview
  2. Docs
Aho-Corasick multi-pattern string matching

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.1.1.tar.gz
md5=f1d1c262b14a9ab81e6933c5cb62b545
sha512=369d9b7fe1cd2c4af1eb20739f357ed1259f05590b53c7b3e77da9138bd50155ce966a1a2a521c70c598092c4d7d788c02bc6cce97a65eda69985d2d4a132952

doc/CHANGES.html

Changelog

0.1.1 (2026-09-14)

Changed

  • Lower the minimum supported Dune version from 3.17.2 to 3.14.0.

0.1.0 (2026-09-13)

Initial release.

Added

  • Immutable Aho-Corasick automata for literal byte-string patterns.
  • Overlapping search (find_all), lazy iteration (find_iter), and early-exit membership (mem).
  • Non-overlapping leftmost-longest search and callback-based replacement.
  • Streaming across chunk boundaries with absolute byte offsets: overlapping, earliest-end non-overlapping, and leftmost-longest matching.
  • Streamed replacement with lookahead bounded by the longest pattern.
  • ASCII case-insensitive matching and duplicate pattern IDs.
  • Usage, semantics, development, and release guides; a documentation website and generated API reference.
  • Unit tests and independent QCheck oracles for match ordering, selection, replacement, and streaming equivalence, including binary inputs.
  • Conformance vectors from Rust aho-corasick, daachorse, and pyahocorasick, plus a differential harness covering 20,000 generated cases.
  • Reproducible, count-checked benchmarks over text corpora and synthetic dense, sparse, and pathological inputs.
  • Dense transition rows for shallow nodes, sorted child arrays for deeper nodes, allocation-free scanning between matches, and single-pass leftmost-longest selection.

Release preparation

  • Specify tie-breaking, stream lifecycle, and memory/performance costs.
  • Align generated opam metadata, test dependency bounds, installed docs, and CI checks with the v0.1.0 package.

Requires OCaml >= 4.14 and Dune >= 3.17.2. Licensed under MIT.