← Back to home
Comparison · Analytics

sdtm.oak vs webmockr

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

sdtm.oak vs webmockr: at a glance

Featuresdtm.oakwebmockr
SectorAnalyticsAnalytics
Velocity score0.00.0
Sparks · 30d00
Top themesclinical-trials, sdtm, pharmaverse, r-packagehttp-mocking, testing, httr2, ropensci
Last editorial update3h ago43m ago
WebsiteVisit →Visit →

What is sdtm.oak?

Two releases in, the open-source SDTM toolkit now covers the domains it originally excluded.

sdtm.oak builds SDTM datasets — the tabulation standard clinical trial submissions are filed in — from raw collected data. The 0.1.0 release shipped the mapping algorithm functions and derived-variable helpers but explicitly excluded DM, trial design domains, and several others. Version 0.2.0 closes the largest of those gaps, adding DM domain support via calc_min_max_date() and oak_calc_ref_dates(), plus generate_sdtm_supp() for supplemental qualifier domains.

Read the full sdtm.oak trajectory →

What is webmockr?

The stubbing library added httr2 support, then spent a year cutting itself free of everything else

webmockr intercepts HTTP requests in R tests and returns stubbed responses, and since 1.0.0 it covers all three clients that matter — httr, httr2 and crul. The releases through 2025 have been about shedding dependencies: internal R6 classes unexported in 2.1.0, crul demoted from Imports to Suggests in the same release, and the mutual dependency with vcr severed in 2.2.0. The package now installs and runs without pulling in the rest of the rOpenSci HTTP stack.

Read the full webmockr trajectory →

sdtm.oak vs webmockr: editorial side-by-side

S
sdtm.oak
ANALYTICS
0.0

Two releases in, the open-source SDTM toolkit now covers the domains it originally excluded.

◆ Current state

sdtm.oak builds SDTM datasets — the tabulation standard clinical trial submissions are filed in — from raw collected data. The 0.1.0 release shipped the mapping algorithm functions and derived-variable helpers but explicitly excluded DM, trial design domains, and several others. Version 0.2.0 closes the largest of those gaps, adding DM domain support via calc_min_max_date() and oak_calc_ref_dates(), plus generate_sdtm_supp() for supplemental qualifier domains.

◆ Where it's heading

This is the pharmaverse pattern of building submission tooling in the open, one domain class at a time, with the release history running through GitHub release-candidate tags before each CRAN submission. The direction is clear from the domain checklist: start with the mechanically simple Findings and Events domains, then work toward the ones with cross-dataset dependencies. DM and SUPP were the two that most often forced teams back to bespoke code.

◆ Prediction

The remaining exclusions from the 0.1.0 scope — trial design domains, SV, SE, RELREC and the EPOCH variable — are the obvious next targets, with EPOCH likely first since it depends on the reference dates 0.2.0 just added. Expect the same rhythm of release candidates ahead of each CRAN submission.

W
webmockr
ANALYTICS
0.0

The stubbing library added httr2 support, then spent a year cutting itself free of everything else

◆ Current state

webmockr intercepts HTTP requests in R tests and returns stubbed responses, and since 1.0.0 it covers all three clients that matter — httr, httr2 and crul. The releases through 2025 have been about shedding dependencies: internal R6 classes unexported in 2.1.0, crul demoted from Imports to Suggests in the same release, and the mutual dependency with vcr severed in 2.2.0. The package now installs and runs without pulling in the rest of the rOpenSci HTTP stack.

◆ Where it's heading

Two arcs run in sequence. The first is coverage — multiple queued responses in 0.7.0, basic auth mocking, async through crul, then httr2 — building out what can be stubbed. The second, starting with 2.0.0, is correctness and independence: stubs are now deleted if an error occurs mid-construction rather than lingering half-built, partial matching arrives for bodies and queries, and the dependency graph is pruned release by release. The 2.2.0 split from vcr landed within a minute of crul's release taking mocking control into its own clients.

◆ Prediction

RequestPattern is documented as still exported in 2.1.0 but slated for removal, so the next major release is where that lands. Expect continued dependency pruning rather than new client support — the three clients that exist are already covered.

Alternatives to sdtm.oak and webmockr

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 sdtm.oak or webmockr.

See all sdtm.oak alternatives → · See all webmockr alternatives →

Recent activity from sdtm.oak and webmockr

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

  1. 1y agowebmockrvcr dependency severed
  2. 1y agowebmockrInternal classes unexported; crul becomes an optional dependency
  3. 1y agosdtm.oaksdtm.oak v0.2.0 CRAN release
  4. 1y agowebmockrFailed stub construction cleans up; partial matching extends to bodies and queries
  5. 1y agosdtm.oaksdtm.oak v0.1.1 CRAN release
  6. 1y agosdtm.oaksdtm.oak v0.1.0 CRAN release
  7. 1y agosdtm.oakv0.1.0rc4: [skip vbump] 90 cran comments (#91)
  8. 2y agosdtm.oakv0.1.0rc2: Fix CRAN Comments (#84)
  9. 2y agosdtm.oakv0.1.0: [skip vbump] Bump version for cran release (#77)
  10. 2y agowebmockrhttr2 joins httr and crul as a supported client
  11. 3y agowebmockrQueued responses, body matching and integer status codes fixed
  12. 3y agowebmockrRegex URI matching fixed

Frequently asked questions

What is the difference between sdtm.oak and webmockr?

They serve adjacent needs but don't currently overlap on shipped themes. sdtm.oak and webmockr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is sdtm.oak better than webmockr?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. sdtm.oak and webmockr are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.

What are the best alternatives to sdtm.oak?

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

What are the best alternatives to webmockr?

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