protolite (version 2.1)

serialize_pb: Serialize to Protocol Buffers

Description

Serializes R objects to a general purpose protobuf message. It uses the same rexp.proto descriptor and mapping between R objects and protobuf messages as RHIPE and the RProtoBuf package.

Usage

serialize_pb(object, connection = NULL, skip_native = FALSE)

unserialize_pb(msg)

Arguments

object

an R object to serialize

connection

a connection, file, or NULL for a raw vector

skip_native

do not serialize 'native' (non-data) R objects. Setting to TRUE will only serialize data types (numeric, boolean, string, raw, list). The default behavior is to fall back on base R serialize for non-data objects.

msg

raw vector with the serialized rexp.proto message

Details

The serialize_pb and unserialize_pb reimplement the identically named functions from the RProtoBuf package in pure C++. This makes the function faster and simpler, but the output should be identical.

Examples

Run this code
# NOT RUN {
# Serialize and unserialize an object
buf <- serialize_pb(iris)
out <- unserialize_pb(buf)
stopifnot(identical(iris, out))

# }
# NOT RUN {
 #Fully compatible with RProtoBuf
buf <- RProtoBuf::serialize_pb(iris, NULL)
out <- protolite::unserialize_pb(buf)
stopifnot(identical(iris, out))

# Other way around
buf <- protolite::serialize_pb(mtcars, NULL)
out <- RProtoBuf::unserialize_pb(buf)
stopifnot(identical(mtcars, out))
# }

Run the code above in your browser using DataLab