← Back to home
Comparison · Analytics

cheapr vs vellum

A side-by-side editorial comparison of cheapr and vellum — release velocity, themes, recent moves, and the top alternatives to consider.

cheapr vs vellum: at a glance

Featurecheaprvellum
SectorAnalyticsAnalytics
Velocity score0.05.0
Sparks · 30d00
Top themesperformance, parallelism, simd, c-apir-graphics, rendering-engine, linting, accessibility
Last editorial update1h ago53m ago
WebsiteVisit →Visit →

What is cheapr?

cheapr turned multi-threaded, and its next stop is a C++20 public API.

cheapr supplies lower-overhead replacements for base R's data manipulation primitives — subsetting, recycling, concatenation, attribute handling, data frame construction. Through 2025 it grew function by function: sset_df/sset_row/sset_col, list_as_df, cheapr_c, counts, str_coalesce, df_modify. The 1.5.0 release in April 2026 changed the nature of the package, adding parallelised math functions, user-settable thread counts, multi-threaded vector initialisers, and a SIMD-parallelised if_else_, with threading on by default at two threads.

Read the full cheapr trajectory →

What is vellum?

vellum's bugs are now found by using it, not testing it — the downstream grammar is doing the QA.

The rendering engine shipped nine releases in the two weeks around the end of July, six of them on a single day. Almost every entry is a correctness fix in a capability that worked when drawn and failed when measured, or worked in isolation and failed in composition. The release notes are unusually forensic: each one states the mechanism, the observable symptom, and why the fix mirrors the draw path rather than reimplementing it.

Read the full vellum trajectory →

cheapr vs vellum: editorial side-by-side

C
cheapr
ANALYTICS
0.0

cheapr turned multi-threaded, and its next stop is a C++20 public API.

◆ Current state

cheapr supplies lower-overhead replacements for base R's data manipulation primitives — subsetting, recycling, concatenation, attribute handling, data frame construction. Through 2025 it grew function by function: sset_df/sset_row/sset_col, list_as_df, cheapr_c, counts, str_coalesce, df_modify. The 1.5.0 release in April 2026 changed the nature of the package, adding parallelised math functions, user-settable thread counts, multi-threaded vector initialisers, and a SIMD-parallelised if_else_, with threading on by default at two threads.

◆ Where it's heading

Two arcs run at once. The visible one is parallelism: what began as single-threaded C shortcuts is becoming a threaded compute layer, and the notes state the C/C++ API is mid-rewrite with a stable form promised at 2.0.0 behind a C++20 requirement. The quieter one is R C API compliance — 1.5.1 removed R_MissingArg, R_UnboundValue, Rf_findVar and Rf_findVarinFrame, the non-API entry points being closed off upstream. The 1.5.x patches since are narrow crash fixes, which reads as consolidation before the 2.0.0 break.

◆ Prediction

Expect 2.0.0 to land the stable C/C++ API behind a C++20 toolchain floor, with more of the existing function surface threaded in the interim. The package has announced both moves in its own release notes.

V
vellum
ANALYTICS
5.0

vellum's bugs are now found by using it, not testing it — the downstream grammar is doing the QA.

◆ Current state

The rendering engine shipped nine releases in the two weeks around the end of July, six of them on a single day. Almost every entry is a correctness fix in a capability that worked when drawn and failed when measured, or worked in isolation and failed in composition. The release notes are unusually forensic: each one states the mechanism, the observable symptom, and why the fix mirrors the draw path rather than reimplementing it.

◆ Where it's heading

The pivotal detail is stated outright in 0.6.3 — the first bug in the series found by using the engine from vellumplot rather than testing it in isolation. Every release since names the downstream as the source: the contrast rule's false positives, the lint rules that fired on all five sample plots, the keyed roundrect batch. A rendering engine with a real grammar built on top of it is now getting the integration coverage that unit tests structurally cannot provide, and the fixes are converging on one theme: the measurement path and the draw path must not drift.

◆ Prediction

Expect the release rate to fall as the vellumplot integration surface is exhausted, with remaining work concentrated in the lint rule set now that it is meant to gate builds rather than just inform.

Alternatives to cheapr and vellum

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 cheapr or vellum.

See all cheapr alternatives → · See all vellum alternatives →

Recent activity from cheapr and vellum

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 11d agovellumLinter grows to 20 rules and stops firing on every plot
  2. 13d agovellumAnimated SVGs no longer blink once and vanish or play in reverse
  3. 13d agovellumPick table now reports device pixels instead of two coordinate systems
  4. 14d agovellumContrast rule stops flagging every plot; gridlines become PDF artifacts
  5. 14d agovellumgrobwidth and grobheight now measure wrapped text, not the unwrapped line
  6. 14d agovellumKeyed roundrect becomes a real batch after downstream integration exposes it
  7. 1mo agocheaprrep_len_ crash on shrinking lengths fixed
  8. 4mo agocheaprNon-API R internals removed
  9. 4mo agocheaprParallelised math, thread control, and a C API rewrite
  10. 1y agocheaprSubsetting speedups; sset_col negative-index crash fixed
  11. 1y agocheaprdf_modify added; attribute helpers renamed for intent
  12. 1y agocheaprcounts and str_coalesce added; reconstruct renamed to rebuild

Frequently asked questions

What is the difference between cheapr and vellum?

They serve adjacent needs but don't currently overlap on shipped themes. vellum is currently shipping more aggressively (velocity 5.0 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.

Is cheapr better than vellum?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. vellum is currently shipping more aggressively (velocity 5.0 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 Analytics products to evaluate alongside.

What are the best alternatives to cheapr?

Top cheapr alternatives in Analytics are ranked by recent ship velocity. Browse the "cheapr alternatives" section above for the current picks, or visit /alternatives/cheapr-r for the full list with editorial commentary on each.

What are the best alternatives to vellum?

Top vellum alternatives in Analytics are ranked by recent ship velocity. Browse the "vellum alternatives" section above for the current picks, or visit /alternatives/vellum-r for the full list with editorial commentary on each.