srm

High-performance .NET regex engine with predictable performance (by AutomataDotNet)

Srm Alternatives

Similar projects and alternatives to srm

  • hyperscan

    High-performance regular expression matching library

  • ILPack

    Serialize .NET Core assemblies

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better srm alternative or higher similarity.

srm reviews and mentions

Posts with mentions or reviews of srm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-27.
  • Writing to .il file using Reflection.Emit
    2 projects | /r/csharp | 27 Apr 2023
    Also, what do you mean by SRM? This? How would a regex engine help here?
  • Regexploit: DoS-Able Regular Expressions
    2 projects | news.ycombinator.com | 21 Mar 2021
    The article touches on DFA based engines and notes that they may not be the fastest in all use cases. To expand on that generally the reason for this would be that the automaton you get from the regular expression has too many states, which can happen for example with very large counters or cases where the state space includes a product of multiple counters due to non-determinism between them (backtracking engines would struggle with the latter case too though).

    Something an automata based engine can do (and IIRC re2 does) is that instead of constructing the full DFA, you can construct the much smaller non-deterministic finite automaton (NFA) and perform the product construction on-the-fly while caching states you've seen. However, this only helps if your input doesn't actually visit all those states. A malicious input could target your NFA engine to cause states being constantly kicked out of the cache. The slowdown here is linear though, so you're still better off than with a backtracking engine.

    A project I'm working on is the Symbolic Regex Engine (SRM) [1], which uses a symbolic variant of regex derivatives. This technique allows an often-minimal DFA to be constructed lazily. This is similar to NFA based engines, but results in much fewer states thus helping with the cache issue. SRM can also handle some classes of counters natively in how the automaton gets constructed, which can turn a blow-up that would be exponential in a DFA based engine into a linear one.

    [1]: https://github.com/AutomataDotNet/srm

Stats

Basic srm repo stats
2
45
0.0
8 months ago

AutomataDotNet/srm is an open source project licensed under MIT License which is an OSI approved license.

The primary programming language of srm is C#.


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com