RcppMsgPack v0.2.3

0

Monthly downloads

0th

Percentile

'MsgPack' C++ Header Files and Interface Functions for R

'MsgPack' header files are provided for use by R packages, along with the ability to access, create and alter 'MsgPack' objects directly from R. 'MsgPack' is an efficient binary serialization format. It lets you exchange data among multiple languages like 'JSON' but it is faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. This package provides headers from the 'msgpack-c' implementation for C and C++(11) for use by R, particularly 'Rcpp'. The included 'msgpack-c' headers are licensed under the Boost Software License (Version 1.0); the code added by this package as well the R integration are licensed under the GPL (>= 2). See the files 'COPYRIGHTS' and 'AUTHORS' for a full list of copyright holders and contributors to 'msgpack-c'.

Readme

RcppMsgPack Build Status License CRAN Dependencies Downloads

MsgPack Headers for R and interface functions

About

This package provides R with both the MessagePack (or MsgPack as a shorthand) header files, and the ability to access, create and alter MessagePack objects directly from R.

MessagePack is an efficient binary serialization format.
It lets you exchange data among multiple languages like JSON. But it is faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. MessagePack is used by Redis and many other projects.

Usage

C++ headers

To use the headers from this package, simply add it to the LinkingTo: field in the DESCRIPTION field of your R package---and the R package infrastructure tools will then know how to set include flags correctly on all architectures supported by R.

Interface functions

The functions msgpack_pack and msgpack_unpack allow you to serialize and de-serialize R objects respectively. msgpack_format is a helper function to properly format R objects for input. msgpack_simplify is a helper function to simplify output from MsgPack conversion.

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. MsgPack Timestamps are an EXT with type -1. Timestamps can be encoded and decoded from POSIXct objects in R to MsgPack format with msgpack_timestamp_encode and msgpack_timestamp_decode.

Msgpack 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.

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

For more information on msgpack types, see here.

Example:

x <- as.list(1:1e6)
x_packed <- msgpack_pack(x)
x_unpacked <- msgpack_unpack(x_packed)

Installation

The package is on CRAN and can be installed via a standard

install.packages("RcppMsgPack")

Pre-releases have been available via the ghrr drat repository:

drat::addRepo("ghrr")
install.packages("RcppMsgPack")

Status

The package currently includes the MessagePack headers version 2.1.5.

See Also

See the BH package for related (and also header-only) libraries from Boost, and the RcppRedis package for simple yet performant Redis support.

Bug Reports

The issue tracker can be used for bug reports or feature requests.

Author

Dirk Eddelbuettel and Travers Ching.

Acknowledgements

Special thanks to Xun Zhu.

License

The R package is provided under the GPL (version 2 or later). The included MsgPack library is released under the same license as Boost, the BSL-1.0.

Functions in RcppMsgPack

Name Description
msgpack_write 'MsgPack' write
msgpack_unpack 'MsgPack' Unpack
msgpack_format Format data for 'MsgPack'
msgpack_read 'MsgPack' read
msgpack_simplify Simplify 'MsgPack'
enumEx Second simple MsgPack Example
msgpack_timestamp_decode 'MsgPack' Timestamp
msgpack_timestamp_encode 'MsgPack' Timestamp
msgpack_map 'MsgPack' Map
msgpack_pack 'MsgPack' Pack
RcppMsgPack-package RcppMsgPack
arrayEx Simple MsgPack Example
No Results!

Vignettes of RcppMsgPack

Name
msgpack_flowchart.pdf
msgpack_flowchart.png
msgpack_flowchart.xml
vignette.rmd
No Results!

Last month downloads

Details

Type Package
Date 2018-11-18
Copyright file inst/COPYRIGHTS
License GPL (>= 2)
LinkingTo Rcpp, BH
BugReports https://github.com/eddelbuettel/rcppmsgpack/issues
RoxygenNote 6.0.1
VignetteBuilder knitr
NeedsCompilation yes
Packaged 2018-11-18 20:48:38.367842 UTC; edd
Repository CRAN
Date/Publication 2018-11-18 21:10:03 UTC

Include our badge in your README

[![Rdoc](http://www.rdocumentation.org/badges/version/RcppMsgPack)](http://www.rdocumentation.org/packages/RcppMsgPack)