RcppSimdJson wraps the fantastic simdjson library by Daniel Lemire which truly impressive. Via some very clever algorithmic engineering to obtain largely branch-free code, coupled with modern C++ and newer compiler instructions, it results in persing gigabytes of JSON parsed per second which is quite mindboggling. I highly recommend the video of the recent talk by Daniel Lemire at QCon (which was also voted best talk). 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 use per byte parsed.
This release syncs the simdjson headers with upstream, and polishes the build a little by conditioning on actually having a C++17 compiler rather than just suggesting it. The NEWS entry follows.
Changes in version 0.0.2 (2020-02-21)
The R side of
validateJSONnow globs the file argument, expanding symbols like
C++ code in
validateJSONnow conditional on C++17 allowing (incomplete) compilation on lesser systems.
New helper function returning value of
__cplusplusmacro, used in package startup to warn if insufficient compiler used.