A high-performance Go library for matching JSON events against multiple patterns with support for wildcards, regex, and complex queries.
Quamina is a Go library that matches JSON events against multiple patterns using a fast automaton-based engine. It solves the problem of efficiently filtering and routing high-volume event streams, such as logs or messages, based on complex criteria including wildcards, regular expressions, and nested field conditions.
Developers building real-time data processing pipelines, event-driven systems, or log analysis tools that require high-throughput pattern matching on structured JSON data.
Developers choose Quamina for its exceptional performance, ability to handle thousands of patterns with minimal latency, and its simplicity as a zero-dependency Go library optimized for concurrent use.
Home of Quamina, a fast pattern-matching library in Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Optimized automaton enables matching millions of events per second, even with many patterns, as highlighted in the README for real-time data filtering.
Supports exact matches, wildcards, regex, prefix/suffix, and more, allowing complex filtering rules on nested JSON fields, detailed in the Patterns documentation.
Provides a Copy() API to create thread-safe instances for parallel processing across goroutines, enabling scalable high-throughput applications.
Built entirely with Go's standard library, ensuring lightweight and reliable deployment without external package management issues.
Using regex or wildcard patterns can cause explosive memory growth and significant slowdowns in AddPattern() and MatchesForEvent(), as warned in the performance notes.
Enabling pattern deletion incurs extra memory costs and can trigger occasional stop-the-world rebuilds, admitted in the README as a trade-off for dynamic updates.
Certain APIs like WithPatternStorage are documented but not yet implemented, limiting out-of-the-box functionality for pattern recovery and sharding.