Skip to content

Conversation

@rabbitstack
Copy link
Owner

What is the purpose of this PR / why it is needed?

By switching from recursive backtracking to an iterative greedy matcher, we've eliminated:

  • all the recursion overhead.
  • repeated slice copies for every recursive call.
  • exponential branching when * appears in the pattern.

The matcher is now linear-time in the length of the pattern and the string, and introduces an ASCII-fast path with a UTF-8 fallback only when needed.

What type of change does this PR introduce?


Uncomment one or more /kind <> lines:

/kind feature (non-breaking change which adds functionality)

/kind bug-fix (non-breaking change which fixes an issue)

/kind refactor (non-breaking change that restructures the code, while not changing the original functionality)

/kind breaking (fix or feature that would cause existing functionality to not work as expected

/kind cleanup

/kind improvement

/kind design

/kind documentation

/kind other (change that doesn't pertain to any of the above categories)

Any specific area of the project related to this PR?


Uncomment one or more /area <> lines:

/area instrumentation

/area telemetry

/area rule-engine

/area filters

/area yara

/area event

/area captures

/area alertsenders

/area outputs

/area rules

/area filaments

/area config

/area cli

/area tests

/area ci

/area build

/area docs

/area deps

/area evasion

/area other

Special notes for the reviewer


Does this PR introduce a user-facing change?


@rabbitstack rabbitstack force-pushed the speed-up-wildcard-matching branch 2 times, most recently from 1883d2d to d6ef054 Compare December 27, 2025 15:26
By switching from recursive backtracking to an iterative greedy matcher, we've eliminated:

- all the recursion overhead.
- repeated slice copies for every recursive call.
- exponential branching when * appears in the pattern.

The matcher is now linear-time in the length of the pattern and string and introduces the ASCII-fast path with UTF-8 fallback only when needed.
@rabbitstack rabbitstack merged commit 344d270 into master Dec 27, 2025
11 checks passed
@rabbitstack rabbitstack deleted the speed-up-wildcard-matching branch December 27, 2025 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants