A new release 0.1.13 of the RcppSimdJson package is now on CRAN.
RcppSimdJson wraps the fantastic and genuinely impressive simdjson library by Daniel Lemire and collaborators. Via very clever algorithmic engineering to obtain largely branch-free code, coupled with modern C++ and newer compiler instructions, it results in parsing gigabytes of JSON parsed per second which is quite mindboggling. The best-case performance is ‘faster than CPU speed’ as use of parallel SIMD instructions and careful branch avoidance can lead to less than one cpu cycle per byte parsed; see the video of the talk by Daniel Lemire at QCon.
This release was tickled by another CRAN request: just like
yesterday’s RcppDate
release, it responds to the esoteric ‘whitespace in literal
operator’ depreceation warning. Turns out that upstream simdjson had this fixed
a few months ago as the node bindings package ran into it. Other changes
include a bit of earlier polish by Daniel, another CRAN mandated update,
CI improvements, and a move of two demos to examples/
to
avoid having to add half a dozen packages to Suggests: for no real usage
gain in the package.
The short NEWS entry for this release follows.
Changes in version 0.1.13 (2025-03-07)
A call to
std::string::erase
is now guarded (Daniel)The package now uses Authors@R as mandated by CRAN (Dirk)
simdjson was upgraded to version 3.12.2 (Dirk)
Continuous integration updated to more compilers and simpler setup
Two demos are now in
inst/examples
to not inflate Suggests
Courtesy of my CRANberries, there is also a diffstat report for this release. For questions, suggestions, or issues please use the issue tracker at the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.