# Using RcppMsgPack

# RcppMsgPack

Convert to and from msgpack objects in R using the official msgpack-c API through Rcpp.

A flowchart describing the conversion of R objects into msgpack objects and back.

Msgpack EXT types are converted to raw vectors with EXT attributes containing the extension type. The extension type must be an integer from 0 to 127.

Maps are converted to data.frames with additional class “map”. Map objects in R contain key and value list columns and can be simplified to named lists or named vectors. The helper function `msgpack_map` creates map objects that can be serialized into msgpack.

For more information on msgpack types, see here.

### Installation:

1. `Install.packages("RcppMsgPack")`

### Example:

See `tests/tests.r` for more examples.

    library(RcppMsgPack)
    library(microbenchmark)

    x <- 1:1e6
    microbenchmark(xpk <- msgpack_pack(x), times=3)

    ## Unit: milliseconds
    ##                    expr      min       lq    mean   median       uq     max
    ##  xpk <- msgpack_pack(x) 14.64695 14.95265 16.3014 15.25834 17.12862 18.9989
    ##  neval
    ##      3

    microbenchmark(xu <- msgpack_unpack(xpk), times=3)

    ## Unit: milliseconds
    ##                       expr      min       lq     mean   median       uq
    ##  xu <- msgpack_unpack(xpk) 59.05184 65.80974 125.9493 72.56764 159.3981
    ##       max neval
    ##  246.2285     3