exametrika
A test-theory package that grew into a graphical-model toolkit, now spending its releases paying down the API debt that growth created.
A side-by-side editorial comparison of Headscale and nuggets — release velocity, themes, recent moves, and the top alternatives to consider.
Headscale stops approximating Tailscale's control plane and starts matching it on purpose.
Headscale's visible work is a single long beta line, 0.29.0-beta.1 through beta.4, spread from late May to mid-June. The release notes are cumulative and identical across all four betas, describing a rebuilt ACL packet-filter implementation validated against real Tailscale clients and the official SaaS, plus support for SSH rules using the check action with OIDC or CLI approval. Minimum supported Tailscale client is pinned at v1.80.0.
nuggets keeps compounding on the 2.0 rewrite — more pattern families, lighter install.
nuggets searches for association rules, contrasts and other conditional patterns in the GUHA tradition, with a C++ core behind dig() and an interactive explore() app for reading results. Since the 2.0 rewrite of that core, every release has widened the same three surfaces: more pattern families to mine, more of explore() to inspect them in, and steady performance work underneath. The most recent tag optimises dig() on sparse crisp data with a sparse bit chain and adds clustering characteristics to explore() for association rules.
Headscale's visible work is a single long beta line, 0.29.0-beta.1 through beta.4, spread from late May to mid-June. The release notes are cumulative and identical across all four betas, describing a rebuilt ACL packet-filter implementation validated against real Tailscale clients and the official SaaS, plus support for SSH rules using the check action with OIDC or CLI approval. Minimum supported Tailscale client is pinned at v1.80.0.
The project is treating behavioural parity with the hosted service as something to be tested rather than assumed — generating ACL test cases systematically against the SaaS and fixing the differences that surfaced. Adding interactive SSH approval moves headscale past connectivity into access control, which is the harder half of what Tailscale sells. The long beta series without a stable cut suggests the maintainers are unwilling to ship that surface until the packet-filter differences are fully closed.
A stable 0.29.0 is the obvious next step once the beta line settles, since the feature set has been frozen across four betas. What remains unclear from these notes is what actually changed between the betas, as each restates the same cumulative text.
nuggets searches for association rules, contrasts and other conditional patterns in the GUHA tradition, with a C++ core behind dig() and an interactive explore() app for reading results. Since the 2.0 rewrite of that core, every release has widened the same three surfaces: more pattern families to mine, more of explore() to inspect them in, and steady performance work underneath. The most recent tag optimises dig() on sparse crisp data with a sparse bit chain and adds clustering characteristics to explore() for association rules.
Two forces are shaping the package. One is coverage: baseline, complement and paired-baseline contrasts, correlations, tautologies, ancestors and clustering have all been added as first-class dig_ or explore_ surfaces, so the same search engine now answers a widening set of questions. The other is weight — Shiny packages moved from Imports to Suggests, BH and RcppThread dropped, XSIMD updated, parse_condition() rewritten in C++ — which keeps a package with an interactive app from forcing that app's dependencies on every user. Deprecations are handled through lifecycle rather than removed abruptly.
Expect the sparse-data optimisation to extend from crisp to fuzzy data, and explore() to keep gaining tabs as each new pattern family lands, on the roughly six-week cadence the 2.2 line has held.
Other Infra & APIs products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either Headscale or nuggets.
A test-theory package that grew into a graphical-model toolkit, now spending its releases paying down the API debt that growth created.
projoint spent a year on CRAN paperwork, then shipped a correctness fix it flagged itself.
eratosthenes spends 0.1.0 hardening inputs rather than adding chronology methods.
dqcheckr adds drift analysis, then removes the YAML a user had to hand-write.
An actuarial mainstay spends its releases on CI plumbing, not on new mathematics.
EDAForge is a data-quality auditor renamed mid-flight, still finding its CRAN footing.
See all Headscale alternatives → · See all nuggets alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. nuggets is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. nuggets is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.
Top Headscale alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "Headscale alternatives" section above for the current picks, or visit /alternatives/headscale for the full list with editorial commentary on each.
Top nuggets alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "nuggets alternatives" section above for the current picks, or visit /alternatives/nuggets for the full list with editorial commentary on each.