{"id":13418595,"url":"https://github.com/RcppCore/Rcpp","last_synced_at":"2025-03-15T03:31:33.171Z","repository":{"id":11523108,"uuid":"14005591","full_name":"RcppCore/Rcpp","owner":"RcppCore","description":"Seamless R and C++ Integration","archived":false,"fork":false,"pushed_at":"2025-03-07T22:43:23.000Z","size":31326,"stargazers_count":753,"open_issues_count":5,"forks_count":218,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-03-10T00:37:41.091Z","etag":null,"topics":["c-plus-plus","c-plus-plus-11","c-plus-plus-14","c-plus-plus-17","c-plus-plus-20","cran","r","r-package","r-packages","rcpp"],"latest_commit_sha":null,"homepage":"https://www.rcpp.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RcppCore.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"eddelbuettel"}},"created_at":"2013-10-31T02:30:38.000Z","updated_at":"2025-03-06T22:20:57.000Z","dependencies_parsed_at":"2023-02-16T00:30:50.459Z","dependency_job_id":"2be73e33-d677-42ca-bed3-820f6ca1a848","html_url":"https://github.com/RcppCore/Rcpp","commit_stats":{"total_commits":4549,"total_committers":81,"mean_commits":"56.160493827160494","dds":0.5878214992306001,"last_synced_commit":"52839b0af41297a9e9e8fefa5252d722c7d62aca"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RcppCore%2FRcpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RcppCore%2FRcpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RcppCore%2FRcpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RcppCore%2FRcpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RcppCore","download_url":"https://codeload.github.com/RcppCore/Rcpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243428433,"owners_count":20289316,"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":["c-plus-plus","c-plus-plus-11","c-plus-plus-14","c-plus-plus-17","c-plus-plus-20","cran","r","r-package","r-packages","rcpp"],"created_at":"2024-07-30T22:01:04.263Z","updated_at":"2025-03-15T03:31:33.143Z","avatar_url":"https://github.com/RcppCore.png","language":"C++","readme":"## Rcpp: Seamless R and C++ Integration\n\n[![CI](https://github.com/RcppCore/Rcpp/workflows/ci/badge.svg)](https://github.com/RcppCore/Rcpp/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/Rcpp)](https://cran.r-project.org/package=Rcpp)\n[![Dependencies](https://tinyverse.netlify.app/badge/Rcpp)](https://cran.r-project.org/package=Rcpp)\n[![Coverage Status](https://codecov.io/gh/RcppCore/Rcpp/graph/badge.svg)](https://app.codecov.io/github/RcppCore/Rcpp?branch=master)\n[![Debian package](https://img.shields.io/debian/v/r-cran-rcpp/sid?color=brightgreen)](https://packages.debian.org/sid/r-cran-rcpp)\n[![r-universe](https://rcppcore.r-universe.dev/badges/Rcpp)](https://rcppcore.r-universe.dev/Rcpp)\n[![Last Commit](https://img.shields.io/github/last-commit/RcppCore/Rcpp)](https://github.com/RcppCore/Rcpp)\n[![Downloads (monthly)](https://cranlogs.r-pkg.org/badges/Rcpp?color=brightgreen)](https://www.r-pkg.org/pkg/Rcpp)\n[![Downloads (total)](https://cranlogs.r-pkg.org/badges/grand-total/Rcpp?color=brightgreen)](https://www.r-pkg.org/pkg/Rcpp)\n[![CRAN use](https://jangorecki.gitlab.io/rdeps/Rcpp/CRAN_usage.svg?sanitize=true)](https://cran.r-project.org/package=Rcpp)\n[![CRAN indirect](https://jangorecki.gitlab.io/rdeps/Rcpp/indirect_usage.svg?sanitize=true)](https://cran.r-project.org/package=Rcpp)\n[![BioConductor use](https://jangorecki.gitlab.io/rdeps/Rcpp/BioC_usage.svg?sanitize=true)](https://cran.r-project.org/package=Rcpp)\n[![JSS](https://img.shields.io/badge/JSS-10.18637%2Fjss.v040.i08-brightgreen)](https://dx.doi.org/10.18637/jss.v040.i08)\n[![Springer useR!](https://img.shields.io/badge/Springer%20useR!-10.1007%2F978--1--4614--6868--4-brightgreen)](https://www.amazon.com/gp/product/1461468671/ref=as_li_tl?ie=UTF8\u0026camp=1789\u0026creative=9325\u0026creativeASIN=1461468671\u0026linkCode=as2\u0026tag=rcpp-20\u0026linkId=3P5LNUWOAQ2YMEJ6)\n[![TAS](https://img.shields.io/badge/TAS-10.1080%2F00031305.2017.1375990-brightgreen)](https://dx.doi.org/10.1080/00031305.2017.1375990)\n\n### Synopsis\n\nThe [Rcpp package](https://cran.r-project.org/package=Rcpp) integrates R and C++ via R functions and a (header-only) C++ library.\n\nAll underlying R types and objects, _i.e._, everything a `SEXP` represents internally\nin R, are matched to corresponding C++ objects. This covers anything from vectors,\nmatrices or lists to environments, functions and more. Each `SEXP` variant is\nautomatically mapped to a dedicated C++ class. For example, numeric vectors are\nrepresented as instances of the `Rcpp::NumericVector` class, environments are\nrepresented as instances of `Rcpp::Environment`, functions are represented as\n`Rcpp::Function`, etc ...  The\n[Rcpp-introduction](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-introduction.pdf)\nvignette (now published as a\n[TAS paper](https://doi.org/10.1080/00031305.2017.1375990); an\n[earlier introduction](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-jss-2011.pdf)\nwas also published as a [JSS paper](https://doi.org/10.18637/jss.v040.i08)\nprovides a good entry point to Rcpp as do the [Rcpp\nwebsite](https://www.rcpp.org), the [Rcpp\npage](https://dirk.eddelbuettel.com/code/rcpp.html) and the [Rcpp\nGallery](https://gallery.rcpp.org). Full documentation is provided by the\n[Rcpp book](https://www.amazon.com/gp/product/1461468671/ref=as_li_tl?ie=UTF8\u0026camp=1789\u0026creative=9325\u0026creativeASIN=1461468671\u0026linkCode=as2\u0026tag=rcpp-20\u0026linkId=3P5LNUWOAQ2YMEJ6).\n\nOther highlights:\n\n- The conversion from C++ to R and back is driven by the templates `Rcpp::wrap`\nand `Rcpp::as` which are highly flexible and extensible, as documented\nin the [Rcpp-extending](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-extending.pdf) vignette.\n\n- Rcpp also provides Rcpp modules, a framework that allows exposing\nC++ functions and classes to the R level. The [Rcpp-modules](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-modules.pdf) vignette\ndetails the current set of features of Rcpp-modules.\n\n- Rcpp includes a concept called Rcpp sugar that brings many R functions\ninto C++. Sugar takes advantage of lazy evaluation and expression templates\nto achieve great performance while exposing a syntax that is much nicer\nto use than the equivalent low-level loop code. The [Rcpp-sugar](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-sugar.pdf)\ngives an overview of the feature.\n\n- Rcpp attributes provide a high-level syntax for declaring C++\nfunctions as callable from R and automatically generating the code\nrequired to invoke them.  Attributes are intended to facilitate both\ninteractive use of C++ within R sessions as well as to support R\npackage development. Attributes are built on top of Rcpp modules and\ntheir implementation is based on previous work in the inline package.\nSee the [Rcpp-atttributes](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-attributes.pdf) vignettes for more details.\n\n### Documentation\n\nThe package ships with ten pdf vignettes, including a [recent introduction to\nRcpp](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-introduction.pdf) now\npublished as a [paper in\nTAS](https://doi.org/10.1080/00031305.2017.1375990) (and as a\n[preprint in PeerJ](https://peerj.com/preprints/3188/)). Also available is an\n[earlier\nintroduction](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-jss-2011.pdf)\nwhich was published as a [JSS paper](https://doi.org/10.18637/jss.v040.i08).\n\nAmong the other vignettes are the [Rcpp\nFAQ](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-FAQ.pdf) and the\nintroduction to [Rcpp\nAttributes](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-attributes.pdf).\nAdditional documentation is available via the [Rcpp book](https://www.amazon.com/gp/product/1461468671/ref=as_li_tl?ie=UTF8\u0026camp=1789\u0026creative=9325\u0026creativeASIN=1461468671\u0026linkCode=as2\u0026tag=rcpp-20\u0026linkId=3P5LNUWOAQ2YMEJ6)\nby Eddelbuettel (2013, Springer); see 'citation(\"Rcpp\")' for details.\n\n### Performance\n\nRcpp follows the C++ motto of _\"you pay only for what you use\"_ and imposes\nno _run-time_ performance penalty: Rcpp outperforms related packages in\ndirect comparison, see for example [this repo for\ndetails](https://github.com/eddelbuettel/ldlasb).\n\nCompile-time performance can be tuned by selecting components. But it is also\nworth noting that use of [`ccache`](https://ccache.dev/) will (strongly)\ndominate all such possible component choices, we have [previously\nrecommended](https://dirk.eddelbuettel.com/blog/2017/11/27/) its use.\n\n### Examples\n\nThe [Rcpp Gallery](https://gallery.rcpp.org) showcases over one hundred fully\ndocumented and working examples. The\n[package RcppExamples](https://cran.r-project.org/package=RcppExamples) contains a few basic\nexamples covering the core data types.\n\nA number of examples are included, as are well over one thousand unit tests which provide\nadditional usage examples.\n\nAn earlier version of Rcpp, containing what we now call the 'classic Rcpp\nAPI' was written during 2005 and 2006 by Dominick Samperi.  This code has\nbeen factored out of Rcpp into the package RcppClassic, and it is still\navailable for code relying on the older interface. New development should\nalways use this Rcpp package instead.\n\nOther usage examples are provided by packages using Rcpp. As of early January\n2024, there are 2791 [CRAN](https://cran.r-project.org) packages using Rcpp\n(corresponding to 13.8% of all packages, and 59.9% of packages containing\ncompiled code), a further 254 [BioConductor](https://www.bioconductor.org)\npackages in its current release as well as an unknown number of GitHub,\nBitbucket, R-Forge, ... repositories using Rcpp.  All these packages provide\nusage examples for Rcpp. The package is in widespread use and has been\ndownloaded over 78.1 million times (per the partial logs from the cloud mirrors\nof CRAN).\n\n### Installation\n\n#### CRAN\n\nRcpp released on CRAN are carefully tested and curated. CRAN ensures they interoperate\nwith all other CRAN package on all test environment. The released and tested versions\nare available via all mirrors of [CRAN](https://cran.r-project.org) network, and can be\ninstalled from within R via\n\n```R\ninstall.packages(\"Rcpp\")\n```\n\n#### Release Candidates\n\nFor the last several releases, we also made interim _candidate_ releases available\non the [Rcpp Drat Repo](https://RcppCore.github.io/drat/).  Versions from a\n[drat](https://github.com/eddelbuettel/drat) repo can be installed either by\njust temporarily setting the [drat](https://github.com/eddelbuettel/drat) repo as in\n\n```R\ninstall.packages(\"Rcpp\", repos=\"https://RcppCore.github.io/drat\")\n```\n\nor by setting a [drat](https://github.com/eddelbuettel/drat) repo more permanently\n(as described in the documentation of the [drat](https://github.com/eddelbuettel/drat)\npackage).\n\nTesting the release candidates prior to actual release help. Please run this if you can.\n\n#### Source\n\nTo install from source, ensure you have a complete package development\nenvironment for R as discussed in the relevant documentation; also see\nquestions 1.2 and 1.3 in the\n[Rcpp-FAQ](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-FAQ.pdf).\n\n#### Less Common Versions and Platforms\n\nIf you want to run Rcpp on another (not-tested on CRAN) platform, or on releases\nolder than the previous release, we suggest you do your due diligence and test\naccordingly.  Rcpp is provided by an all-volunteer team with finite resources.\nWe work hard to test Rcpp with several thousand CRAN packages using it---but\nwe cannot test on outdated versions of R or your OS.\n\n### Support\n\nThe best place for questions is the\n[Rcpp-devel](https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel)\nmailing list hosted at R-forge.  Note that in order to keep spam down, you must\nbe a subscriber in order to post.  One can also consult the list archives to see\nif your question has been asked before.\n\nThe [issue tickets at the GitHub repo](https://github.com/RcppCore/Rcpp/issues)\nare the primary bug reporting interface.  As with the other web resources,\nprevious issues can be searched as well.\n\n\n### Authors\n\nDirk Eddelbuettel, Romain Francois, JJ Allaire, Kevin Ushey, Qiang Kou,\nNathan Russell, Iñaki Ucar, Doug Bates, and John Chambers\n\n### License\n\nGPL (\u003e= 2)\n","funding_links":["https://github.com/sponsors/eddelbuettel"],"categories":["TODO scan for Android support in followings","C++","Table of Contents"],"sub_categories":["Development in R"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRcppCore%2FRcpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRcppCore%2FRcpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRcppCore%2FRcpp/lists"}