{"id":16572102,"url":"https://github.com/eddelbuettel/rcppmsgpack","last_synced_at":"2025-07-27T22:41:18.802Z","repository":{"id":56937086,"uuid":"51785171","full_name":"eddelbuettel/rcppmsgpack","owner":"eddelbuettel","description":"MsgPack Headers for R / msgpack.org[R] ","archived":false,"fork":false,"pushed_at":"2025-01-19T13:34:53.000Z","size":939,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-24T10:44:00.852Z","etag":null,"topics":["cran","messagepack","msgpack","msgpack-headers","r-package"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eddelbuettel.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-15T20:58:34.000Z","updated_at":"2025-01-20T07:02:22.000Z","dependencies_parsed_at":"2024-10-26T20:28:57.225Z","dependency_job_id":"93030445-5688-4051-aeb9-2a9adec0e518","html_url":"https://github.com/eddelbuettel/rcppmsgpack","commit_stats":{"total_commits":77,"total_committers":2,"mean_commits":38.5,"dds":"0.22077922077922074","last_synced_commit":"2180f8cca3c870c0ec56a4a2a370ea2d5cd6135d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddelbuettel%2Frcppmsgpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddelbuettel%2Frcppmsgpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddelbuettel%2Frcppmsgpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddelbuettel%2Frcppmsgpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eddelbuettel","download_url":"https://codeload.github.com/eddelbuettel/rcppmsgpack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248670513,"owners_count":21142896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cran","messagepack","msgpack","msgpack-headers","r-package"],"created_at":"2024-10-11T21:26:23.173Z","updated_at":"2025-04-13T05:34:55.868Z","avatar_url":"https://github.com/eddelbuettel.png","language":"C++","readme":"## RcppMsgPack: MsgPack Headers for R and interface functions\n\n[![CI](https://github.com/eddelbuettel/rcppmsgpack/workflows/ci/badge.svg)](https://github.com/eddelbuettel/rcppmsgpack/actions?query=workflow%3Aci)\n[![License](https://eddelbuettel.github.io/badges/GPL2+.svg)](https://www.gnu.org/licenses/gpl-2.0.html) \n[![CRAN](https://www.r-pkg.org/badges/version/RcppMsgPack)](https://cran.r-project.org/package=RcppMsgPack) \n[![Dependencies](https://tinyverse.netlify.app/badge/RcppGetconf)](https://cran.r-project.org/package=RcppGetconf) \n[![Downloads](https://cranlogs.r-pkg.org/badges/RcppMsgPack?color=brightgreen)](https://www.r-pkg.org/pkg/RcppMsgPack)\n[![Last Commit](https://img.shields.io/github/last-commit/eddelbuettel/rcppmsgpack)](https://github.com/eddelbuettel/rcppmsgpack)\n[![RJournal](https://img.shields.io/badge/RJournal-10.32614%2FRJ--2018--068-brightgreen)](https://doi.org/10.32614/RJ-2018-068)\n\n### About\n\nThis package provides [R](https://www.r-project.org) with both the\n[MessagePack](https://msgpack.org/) (or MsgPack as a shorthand) header files, and the ability to\naccess, create and alter [MessagePack](https://msgpack.org/) objects directly from\n[R](https://www.r-project.org).\n\n[MessagePack](https://msgpack.org/) is an efficient binary serialization format.  It lets you\nexchange data among multiple languages like JSON. But it is faster and smaller.  Small integers\nare encoded into a single byte, and typical short strings require only one extra byte in\naddition to the strings themselves.  [MessagePack](https://msgpack.org/) is used by Redis and\nmany other projects.\n\nThe [R Journal paper](https://doi.org/10.32614/RJ-2018-068) describes both the `RcppMsgPack`\npackage and [MessagePack](https://msgpack.org/).\n\n### Usage\n#### C++ headers\n\nTo use the headers from this package, simply add it to the `LinkingTo:` field in the\n`DESCRIPTION` field of your R package---and the R package infrastructure tools will then know\nhow to set include flags correctly on all architectures supported by R.\n\n#### Interface functions\n\nThe functions `msgpack_pack` and `msgpack_unpack` allow you to serialize and de-serialize R\nobjects respectively.  `msgpack_format` is a helper function to properly format R objects for\ninput.  `msgpack_simplify` is a helper function to simplify output from MsgPack conversion.\n\nMsgPack EXT types are converted to raw vectors with EXT attributes containing the extension\ntype.  The extension type must be an integer from 0 to 127.  MsgPack Timestamps are an EXT with\ntype -1.  Timestamps can be encoded and decoded from `POSIXct` objects in R to MsgPack format\nwith `msgpack_timestamp_encode` and `msgpack_timestamp_decode`.\n\nMsgpack Maps are converted to data.frames with additional class \"map\".  Map objects in R\ncontain key and value list columns and can be simplified to named lists or named vectors.  The\nhelper function `msgpack_map` creates map objects that can be serialized into msgpack.\n\n![flowchart](https://github.com/eddelbuettel/rcppmsgpack/raw/master/vignettes/msgpack_flowchart.png\n\"Conversion flowchart\") *A flowchart describing the conversion of R objects into msgpack\nobjects and back.*\n\nFor more information on msgpack types, see [here](https://github.com/msgpack/msgpack/blob/master/spec.md).  \n\n#### Example:\n```\nx \u003c- as.list(1:1e6)\nx_packed \u003c- msgpack_pack(x)\nx_unpacked \u003c- msgpack_unpack(x_packed)\n```\n\n### Installation\n\nThe package is on [CRAN](https://cran.r-project.org) and can be installed via a standard\n\n```r\ninstall.packages(\"RcppMsgPack\")\n```\n\nPre-releases have been available via the [ghrr drat](https://ghrr.github.io/drat/)\nrepository:\n\n```{.r}\ndrat::addRepo(\"ghrr\")\ninstall.packages(\"RcppMsgPack\")\n```\n\n### Status\n\nThe package currently includes the MessagePack headers version 2.1.5.\n\n### See Also\n\nSee the [BH](https://dirk.eddelbuettel.com/code/bh.html) package for related (and also\nheader-only) libraries from [Boost](https://www.boost.org/), and the\n[RcppRedis](https://dirk.eddelbuettel.com/code/rcppredis.html) package for simple yet performant\nRedis support.\n\n### Bug Reports\n\nThe [issue tracker](https://github.com/eddelbuettel/rcppmsgpack/issues)\ncan be used for bug reports or feature requests.\n\n### Author\n\nDirk Eddelbuettel and [Travers Ching](https://github.com/traversc).\n\n### Acknowledgements\n\nSpecial thanks to [Xun Zhu](https://github.com/w9).\n\n### License\n\nThe R package is provided under the GPL (version 2 or later).  The included\nMsgPack library is released under the same license as Boost, the BSL-1.0.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feddelbuettel%2Frcppmsgpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feddelbuettel%2Frcppmsgpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feddelbuettel%2Frcppmsgpack/lists"}