broom.helpers
After eleven quiet months, the tidier under gtsummary is back to absorbing model classes.
A side-by-side editorial comparison of OpenHouse and vecvec — release velocity, themes, recent moves, and the top alternatives to consider.
OpenHouse starts adding per-column defaults while still closing silent-failure holes.
OpenHouse, LinkedIn's Iceberg control plane, is running two threads at once. A new [default values] work stream has begun landing - tables now apply server-supplied per-column defaults, with the read bridge updated to mark Iceberg bridge failures unrecoverable rather than letting them pass quietly. Alongside it, the safety work continues: orphan files now move to backup when a data manifest exists instead of being removed outright.
A lazy vector container keeps closing the gaps where it quietly materialised anyway.
vecvec provides an R class that holds multiple vectors as one logical vector without copying them together, for cases where concatenating would be wasteful. The 1.0.0 rewrite moved the class off vctrs onto S7 while keeping user-facing code working, and added matrix and array behaviour. Since then the work has been about whether the abstraction actually saves anything: 1.3.0 makes duplicated(), equality proxies, casting and array formatting compute slot-wise instead of materialising, and adds vecvec_mapply() to apply a function across several vecvecs at once.
OpenHouse, LinkedIn's Iceberg control plane, is running two threads at once. A new [default values] work stream has begun landing - tables now apply server-supplied per-column defaults, with the read bridge updated to mark Iceberg bridge failures unrecoverable rather than letting them pass quietly. Alongside it, the safety work continues: orphan files now move to backup when a data manifest exists instead of being removed outright.
The month's pattern is unmistakable once the release titles are read together: CREATE OR REPLACE silently dropping table policies, RENAME COLUMN silently succeeding without renaming, RTAS not blocked on locked tables. This is a service systematically closing paths where a catalog operation reported success while losing metadata. The [default values] train is the first sustained additive capability in the window, and it is arriving as a sequence of narrow PRs rather than a single announced feature.
Expect further [default values] increments - write-path handling and validation are the obvious next pieces - before the capability is described as complete anywhere in the feed.
vecvec provides an R class that holds multiple vectors as one logical vector without copying them together, for cases where concatenating would be wasteful. The 1.0.0 rewrite moved the class off vctrs onto S7 while keeping user-facing code working, and added matrix and array behaviour. Since then the work has been about whether the abstraction actually saves anything: 1.3.0 makes duplicated(), equality proxies, casting and array formatting compute slot-wise instead of materialising, and adds vecvec_mapply() to apply a function across several vecvecs at once.
The arc runs from proving the idea to making it cheap, and 1.3.0 is the widest pass yet at the second half. Early releases established constructors and vctrs dispatch; 1.0.0 rebuilt the internals on S7; the three releases since have worked through the operations that were quietly defeating the point — printing, duplicate detection, casting, equality — and made each compute on storage slots rather than elements. ALTREP detection has moved from parsing .Internal(inspect()) output to a C-level check, the same work on a firmer footing. The other visible thread is a widening apply surface: vec_apply() per vector, now vecvec_mapply() across several.
With the main vctrs operations converted to slot-wise computation, the remaining materialisation points are the natural next target; the entries name no specific one, and the internal structure reserved at 1.0.0 still leaves room for the faster special-case representations flagged then.
Other Analytics 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 OpenHouse or vecvec.
After eleven quiet months, the tidier under gtsummary is back to absorbing model classes.
Julia's distribution library keeps filing down the edges where sampling meets array types
Power BI's monthly grind: authoring defaults, DAX documentation, and mobile finally catching up.
ggquiver is awake again, fixing arrow scaling that quietly misread irregular data.
Mesh interpolation drops its custom fork dependency and sheds weight.
A mesh renderer grows a scene graph and an exit route into glTF.
See all OpenHouse alternatives → · See all vecvec alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. OpenHouse is currently shipping more aggressively (velocity 5.0 vs 2.5), 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. OpenHouse is currently shipping more aggressively (velocity 5.0 vs 2.5), with 0 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top OpenHouse alternatives in Analytics are ranked by recent ship velocity. Browse the "OpenHouse alternatives" section above for the current picks, or visit /alternatives/openhouse for the full list with editorial commentary on each.
Top vecvec alternatives in Analytics are ranked by recent ship velocity. Browse the "vecvec alternatives" section above for the current picks, or visit /alternatives/vecvec for the full list with editorial commentary on each.