• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

SchwarzDigits / hypermatch
97%

Build:
DEFAULT BRANCH: main
Repo Added 19 Feb 2026 09:39AM UTC
Token 43aT1ou9hKZrkVlY3tjTX73qjGQlyVFAd regen
Build 33 Last
Files 13
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • alert-autofix-1
  • alert-autofix-3
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/actions/setup-go-7
  • dependabot/github_actions/golangci/golangci-lint-action-9
  • docs/drop-goreportcard-badge
  • feat/robust-engine
  • feat/v2.1
  • feat/v2.2
  • feat/v2.3
  • feature/rename-to-digits
  • main
  • perf/hit-bitset

16 Sep 2026 02:08PM UTC coverage: 97.296% (+1.3%) from 96.022%
35106528083

push

github

web-flow
v2.3: IP networks, wildcard paths, Go helpers and faster exclusions (#17)

* test: cover wide JSON events and explanations with alternatives

MatchJSON grows its table of paths once an event has more than eight
paths the rules refer to, which no test did so far. The new test
matches events with up to 300 such paths and repeats a path after the
table has grown.

Another test checks how an explanation shows alternatives, as text and
as JSON. wildcardLeaf loses a case that patterns with escapes never
reach.

* feat: build rules in Go with less typing

Cond, Or, Equals, Prefix, Suffix, Wildcard, AnyOf, AllOf, AnythingBut,
LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual,
NumericEquals, Between, Exists and Absent fill in the structs of a
rule, so that

    hypermatch.Cond("team", hypermatch.Equals("shop"))

replaces

    hypermatch.Condition{Path: "team", Pattern: hypermatch.Pattern{
        Type: hypermatch.PatternEquals, Value: "shop"}}

The package example and the README use them, and new runnable examples
show alternatives with $or and numeric patterns.

* feat: match IP addresses against networks with cidr

The cidr pattern matches IPv4 and IPv6 addresses inside a prefix such
as 10.0.0.0/8. Every distinct prefix length on a path costs one hash
lookup of the masked address. Addresses are parsed without allocating,
also for values that are not addresses, and the parser is fuzzed
against net/netip.

The prefix and suffix lengths of a group now share one pointer, which
keeps groups in their size class.

* feat: match all fields below a path with wildcard paths

A condition on a path ending in ".*", such as "labels.*", looks at the
values of all paths that begin with "labels.", as if they were one
property. Match adds the values of such paths to one more span, and
MatchJSON records the values below an open wildcard path for it, also
for keys that contain ".". Rule sets without wildcard paths only pay
for a nil check.

Paths ending in ".*" matched... (continued)

413 of 415 new or added lines in 9 files covered. (99.52%)

2303 of 2367 relevant lines covered (97.3%)

172018.51 hits per line

Relevant lines Covered
Build:
Build:
2367 RELEVANT LINES 2303 COVERED LINES
172018.51 HITS PER LINE
Source Files on main
  • Tree
  • List 13
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
35106528083 main v2.3: IP networks, wildcard paths, Go helpers and faster exclusions (#17) * test: cover wide JSON events and explanations with alternatives MatchJSON grows its table of paths once an event has more than eight paths the rules refer to, which no t... push 16 Sep 2026 02:10PM UTC web-flow github
97.3
35106208712 feat/v2.3 docs: prepare the 2.3.0 release Pull #17 16 Sep 2026 02:07PM UTC mtrossbach github
97.3
35089759718 main perf: evaluate conditions against a set of the matching leaves (#16) A formula asked whether a leaf matched by searching the sorted list of hits; it now tests a bit in a set of their ids, built only once a formula needs it. Conditions with anyth... push 16 Sep 2026 11:22AM UTC web-flow github
96.02
35089508624 perf/hit-bitset perf: evaluate conditions against a set of the matching leaves A formula asked whether a leaf matched by searching the sorted list of hits. It now tests a bit in a set of their ids, and that set is only built once a formula needs it, so the many ... Pull #16 16 Sep 2026 11:18AM UTC mtrossbach github
96.02
35077421831 main docs: drop the Go Report Card badge Go Report Card was sunset on 1 July 2026 and its repository is archived; the badge now renders "go report: retired". push 16 Sep 2026 09:07AM UTC web-flow github
95.97
35077415184 docs/drop-goreportcard-badge docs: drop the Go Report Card badge Go Report Card was sunset on 1 July 2026 and its repository is archived. The badge now renders "go report: retired", so it says nothing about this project any more. Pull #15 16 Sep 2026 09:07AM UTC mtrossbach github
95.97
35065849408 main v2.2: alternatives with $or, numeric eq and wildcard escapes (#14) $or combines alternatives across different paths in one rule, eq matches numbers in any notation, and wildcard patterns can escape a literal * as \*. Explanations carry a result p... push 16 Sep 2026 06:55AM UTC web-flow github
95.97
35065688422 feat/v2.2 docs: release notes for v2.2.0 Pull #14 16 Sep 2026 06:53AM UTC mtrossbach github
95.97
35019182916 main v2.1: live rule updates, MatchFirst, MatchJSON, numbers, exists and Explain (#13) v2.1 adds live rule updates, routing, JSON matching, numeric comparisons, exists and Explain, without changing the existing API. - feat: remove rules at run time w... push 15 Sep 2026 08:23PM UTC web-flow github
95.99
35018047314 feat/v2.1 docs: add use cases and document ReplaceRule, MatchFirst and Explain Pull #13 15 Sep 2026 08:12PM UTC mtrossbach github
95.99
See All Builds (33)

Badge your Repo: hypermatch

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc