{
  "_id": "6ab40da43d719c1f840940b2",
  "Package": "cpp4r",
  "Type": "Package",
  "Title": "Header-Only 'C++' and 'R' Interface",
  "Description": "Provides a header only, 'C++' interface to 'R' with\nenhancements over 'cpp11'. Enforces copy-on-write semantics\nconsistent with 'R' behavior. Offers native support for ALTREP\nobjects, 'UTF-8' string handling, modern 'C++' features and\nidioms, and reduced memory requirements. Allows for vendoring,\nmaking it useful for restricted environments. Compared to\n'cpp11', it adds support for converting 'C++' maps to 'R'\nlists, 'Roxygen' documentation directly in 'C++' code, proper\nhandling of matrix attributes, support for nullable external\npointers, bidirectional copy of complex number types,\nflexibility in type conversions, use of nullable pointers, and\nvarious performance optimizations.",
  "Version": "1.3.0",
  "Authors@R": "c(person(\"Mauricio\", \"Vargas Sepulveda\", ,\n\"m.vargas.sepulveda@gmail.com\", role = c(\"aut\", \"cre\"), comment = c(ORCID =\n\"0000-0003-1017-7574\")), person(, \"Posit Software, PBC\", role = \"aut\",\ncomment = \"Original cpp11 package\"))",
  "License": "Apache License (>= 2)",
  "URL": "https://cpp4r.org, https://github.com/pachadotdev/cpp4r",
  "BugReports": "https://github.com/pachadotdev/cpp4r/issues",
  "Encoding": "UTF-8",
  "VignetteBuilder": "litedown",
  "Repository": "https://pachadotdev.r-universe.dev",
  "Date/Publication": "2026-09-23 14:30:49 UTC",
  "RemoteUrl": "https://github.com/pachadotdev/cpp4r",
  "RemoteRef": "HEAD",
  "RemoteSha": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-23 17:25:28 UTC",
    "User": "root"
  },
  "Author": "Mauricio Vargas Sepulveda [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-1017-7574>),\nPosit Software, PBC [aut] (Original cpp11 package)",
  "Maintainer": "Mauricio Vargas Sepulveda <m.vargas.sepulveda@gmail.com>",
  "_user": "pachadotdev",
  "_type": "src",
  "_file": "cpp4r_1.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/4e5a13c8cb64874b7292e1353f7c68007fb18c8465226f5f457311d8d8fd6745",
  "_filesize": 271467,
  "_sha256": "4e5a13c8cb64874b7292e1353f7c68007fb18c8465226f5f457311d8d8fd6745",
  "_expires": "2027-01-01T17:34:25.000Z",
  "_created": "2026-09-23T17:25:28.000Z",
  "_published": "2026-09-23T17:34:28.015Z",
  "_jobs": [
    {
      "job": 107298412378,
      "time": 115,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10766782295"
    },
    {
      "job": 107298412758,
      "time": 112,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10766362925"
    },
    {
      "job": 107298412307,
      "time": 94,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10766314490"
    },
    {
      "job": 107298412380,
      "time": 94,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10766564100"
    },
    {
      "job": 107297355425,
      "time": 162,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10766731827"
    },
    {
      "job": 107298412166,
      "time": 94,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10766837143"
    },
    {
      "job": 107298412608,
      "time": 71,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10766737282"
    },
    {
      "job": 107298412579,
      "time": 93,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10766263451"
    },
    {
      "job": 107298412452,
      "time": 87,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10766243461"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149",
  "_status": "success",
  "_upstream": "https://github.com/pachadotdev/cpp4r",
  "_commit": {
    "id": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
    "author": "Pacha <m.vargas.sepulveda@gmail.com>",
    "committer": "Pacha <m.vargas.sepulveda@gmail.com>",
    "message": "new cran version\n",
    "time": 1790173849
  },
  "_maintainer": {
    "name": "Mauricio Vargas Sepulveda",
    "email": "m.vargas.sepulveda@gmail.com",
    "login": "pachadotdev",
    "orcid": "0000-0003-1017-7574",
    "description": "Statistician interested in applying statistical methods to address specific policy-relevant questions, particularly in international trade.",
    "uuid": 10091065
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    },
    {
      "package": "rbibutils",
      "role": "Suggests"
    },
    {
      "package": "litedown",
      "role": "Suggests"
    }
  ],
  "_owner": "pachadotdev",
  "_selfowned": true,
  "_usedby": 25,
  "_updates": [
    {
      "week": "2026-24",
      "n": 2
    },
    {
      "week": "2026-29",
      "n": 2
    },
    {
      "week": "2026-30",
      "n": 20
    },
    {
      "week": "2026-31",
      "n": 5
    },
    {
      "week": "2026-33",
      "n": 1
    },
    {
      "week": "2026-39",
      "n": 2
    }
  ],
  "_tags": [],
  "_topics": [
    "cpp"
  ],
  "_stars": 8,
  "_contributors": [
    {
      "user": "pachadotdev",
      "count": 46,
      "uuid": 10091065
    }
  ],
  "_userbio": {
    "uuid": 10091065,
    "type": "user",
    "name": "Mauricio \"Pachá\" Vargas Sepúlveda",
    "followers": 602,
    "description": "Statistician interested in applying statistical methods to address specific policy-relevant questions, particularly in international trade."
  },
  "_downloads": {
    "count": 2241,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/cpp4r"
  },
  "_devurl": "https://github.com/pachadotdev/cpp4r",
  "_searchresults": 3,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/cpp4r.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/pachadotdev/cpp4r",
  "_realowner": "pachadotdev",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.3.0",
      "date": "2025-10-16"
    },
    {
      "version": "0.4.0",
      "date": "2025-12-11"
    },
    {
      "version": "0.5.0",
      "date": "2026-04-13"
    },
    {
      "version": "0.5.1",
      "date": "2026-04-15"
    },
    {
      "version": "0.6.0",
      "date": "2026-05-17"
    },
    {
      "version": "1.0.0",
      "date": "2026-06-12"
    },
    {
      "version": "1.1.0",
      "date": "2026-07-21"
    }
  ],
  "_exports": [
    "pkg_template",
    "register",
    "unvendor",
    "vendor"
  ],
  "_help": [
    {
      "page": "cpp4r-package",
      "title": "Title: Header-Only 'C++' and 'R' Interface",
      "topics": [
        "cpp4r-package"
      ]
    },
    {
      "page": "pkg_template",
      "title": "Start a new project with the cpp4r package template",
      "topics": [
        "pkg_template"
      ]
    },
    {
      "page": "register",
      "title": "Generates wrappers for registered C++ functions",
      "topics": [
        "register"
      ]
    },
    {
      "page": "unvendor",
      "title": "Unvendor the cpp4r headers",
      "topics": [
        "unvendor"
      ]
    },
    {
      "page": "vendor",
      "title": "Vendor the cpp4r headers",
      "topics": [
        "vendor"
      ]
    }
  ],
  "_pkglogo": "https://github.com/pachadotdev/cpp4r/raw/HEAD/man/figures/logo.svg",
  "_readme": "https://github.com/pachadotdev/cpp4r/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "v01-intro.Rmd",
      "filename": "v01-intro.html",
      "title": "01 - Introduction",
      "engine": "litedown::vignette",
      "headings": [
        "Motivation",
        "Differences between R's C API and cpp4r",
        "Memory protection",
        "Creating vectors",
        "Type checking and coercion",
        "Strings",
        "Missing values (NA)",
        "Error handling",
        "Lists",
        "Calling R functions from C++",
        "Environments",
        "External pointers",
        "Matrices",
        "Summary",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v02-setup.Rmd",
      "filename": "v02-setup.html",
      "title": "02 - Setup",
      "engine": "litedown::vignette",
      "headings": [
        "C++ Setup",
        "For Ubuntu Users",
        "R Setup"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v03-package-skeleton.Rmd",
      "filename": "v03-package-skeleton.html",
      "title": "03 - Package Skeleton",
      "engine": "litedown::vignette",
      "headings": [
        "Loading the Required R Packages",
        "Creating a Dummy Package",
        "Print a Number",
        "Exporting a Registered Function",
        "Number's Sign",
        "Installing the Package",
        "Good Practice",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v04-read-only.Rmd",
      "filename": "v04-read-only.html",
      "title": "04 - Read-only versus Writable R Objects",
      "engine": "litedown::vignette",
      "headings": [
        "Read and write",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v05-logical-functions.Rmd",
      "filename": "v05-logical-functions.html",
      "title": "05 - Logical Functions",
      "engine": "litedown::vignette",
      "headings": [
        "Notes",
        "Is any value in a vector 'true'?",
        "Which elements in a vector are 'true'?",
        "Are all values in a vector 'true'?",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v06-rolling-functions.Rmd",
      "filename": "v06-rolling-functions.html",
      "title": "06 - Rolling Functions",
      "engine": "litedown::vignette",
      "headings": [
        "Notes",
        "Cumulative sum",
        "Cumulative product",
        "Range of values",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v07-statistical-functions.Rmd",
      "filename": "v07-statistical-functions.html",
      "title": "07 - Statistical Functions",
      "engine": "litedown::vignette",
      "headings": [
        "Notes",
        "Sum",
        "Arithmetic mean",
        "Variance",
        "Root Mean Square Error (RMSE)",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v08-logical-functions-2.Rmd",
      "filename": "v08-logical-functions-2.html",
      "title": "08 - Logical Functions with Missing Values",
      "engine": "litedown::vignette",
      "headings": [
        "Notes",
        "Is any value in a vector 'true'?",
        "Which elements in a vector are 'true'?",
        "Are all values in a vector 'true'?"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v09-rolling-functions-2.Rmd",
      "filename": "v09-rolling-functions-2.html",
      "title": "09 - Rolling Functions with Missing Values",
      "engine": "litedown::vignette",
      "headings": [
        "Notes",
        "Cumulative sum",
        "Cumulative product",
        "Cumulative minimum",
        "Cumulative maximum"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v10-statistical-functions-2.Rmd",
      "filename": "v10-statistical-functions-2.html",
      "title": "10 - Statistical Functions with Missing Values",
      "engine": "litedown::vignette",
      "headings": [
        "Notes",
        "Sum",
        "Arithmetic mean",
        "Variance",
        "Root Mean Square Error (RMSE)"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v11-debugging.Rmd",
      "filename": "v11-debugging.html",
      "title": "11 - Debugging R Packages",
      "engine": "litedown::vignette",
      "headings": [
        "Motivation",
        "Compiler Setup",
        "Testing for Memory Leaks",
        "Adding a configure script",
        "Testing with Docker",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v12-external-pointers.Rmd",
      "filename": "v12-external-pointers.html",
      "title": "12 - External Pointers",
      "engine": "litedown::vignette",
      "headings": [],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v13-compiler-optimization.Rmd",
      "filename": "v13-compiler-optimization.html",
      "title": "13 - Compiler Optimizations",
      "engine": "litedown::vignette",
      "headings": [
        "Motivation",
        "User-wide Makevars",
        "Anticonf scripts"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v14-linear-algebra.Rmd",
      "filename": "v14-linear-algebra.html",
      "title": "14 - Linear Algebra",
      "engine": "litedown::vignette",
      "headings": [
        "Motivation",
        "Using Armadillo",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v15-internals.Rmd",
      "filename": "v15-internals.html",
      "title": "15 - Internals",
      "engine": "litedown::vignette",
      "headings": [
        "Initial setup and dev workflow",
        "Code formatting",
        "Code organization",
        "Naming conventions",
        "Vector classes",
        "Coercion functions",
        "Protection",
        "Protect list",
        "Unwind Protect"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v16-worked-examples.Rmd",
      "filename": "v16-worked-examples.html",
      "title": "16 - Worked Examples",
      "engine": "litedown::vignette",
      "headings": [
        "Motivation",
        "Instructional examples",
        "Solving a matrix using the Gauss-Jordan method",
        "Details",
        "Vendoring",
        "Building and testing",
        "Ordinary Least Squares (OLS) estimator",
        "Linear programming (Simplex phase 2)",
        "Algorithm",
        "Numerical example",
        "Using OMP (parallelization)",
        "Enabling OpenMP",
        "Unnamed list",
        "Named list",
        "Implementing a rejection and bootstrap sampler",
        "Extensive R/C++ tests",
        "Useful R/C++ Integration Examples",
        "References"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    },
    {
      "source": "v17-FAQ.Rmd",
      "filename": "v17-FAQ.html",
      "title": "17 - FAQs",
      "engine": "litedown::vignette",
      "headings": [
        "Is this only compatible with C++11?",
        "Can I specify which C++ standard to use?",
        "My laptop uses C++NN but my cluster uses C++MM, how can I make sure my code works on both?",
        "What are the underlying types of cpp4r objects?",
        "How do I add elements to a list?",
        "Does cpp4r support default arguments?",
        "How do I create a new empty list?",
        "How do I retrieve (named) elements from a named vector/list?",
        "How can I tell whether a vector is named?",
        "How do I return a \"cpp4r::writable::logicals\" object with only a \"FALSE\" value?",
        "How do I create a new empty environment?",
        "How do I assign and retrieve values in an environment? What happens if I try to get a value that does not exist?",
        "How can I create a \"cpp4r:raws\" from a \"std::string\"?",
        "How can I create a \"std::string\" from a \"cpp4r::writable::string\"?",
        "What are the types for C++ iterators?",
        "What's wrong with \"using namespace std\"?",
        "How do I modify a vector in place?",
        "Should I call \"unwind_protect\" manually?",
        "Destructors",
        "Nested unwind_protect()",
        "How do I modify a matrix rownames/colnames on C++ side?",
        "How do I use the same seed defined in R for random number generation in C++?",
        "How different is cpp11::function compared to cpp4r::function?"
      ],
      "created": "2026-07-27 12:24:25",
      "modified": "2026-07-27 12:24:25",
      "commits": 1
    }
  ],
  "_score": 8.836163283016642,
  "_indexed": true,
  "_nocasepkg": "cpp4r",
  "_universes": [
    "pachadotdev"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.3.0",
      "date": "2026-09-23T17:28:28.000Z",
      "distro": "resolute",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/a2e768c32cc1aff3e6b756dc36a8c9cbefbe5fba61ebb72b62eae8fa046096a2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.3.0",
      "date": "2026-09-23T17:28:39.000Z",
      "distro": "resolute",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/bb40695c97c5c6ef658651cbbcb7935cb300c6d3cf897de879eb1991d4d63e8a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.3.0",
      "date": "2026-09-23T17:33:48.000Z",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/28e637db8081aa33b84dec448195903aad473468d1377d2b5c27cf96320730cd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.3.0",
      "date": "2026-09-23T17:33:48.000Z",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/2a992969d37aaaa83b0860904becc6be3f617b45df2c689308209d0d7647bd46",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.3.0",
      "date": "2026-09-23T17:28:43.000Z",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/2d320a1b6905f8c56c8aebb1e998a28aa2d9c6821873a7d331303d55702b6d6a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.3.0",
      "date": "2026-09-23T17:27:51.000Z",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/5aa9ddaff83b2c884e59083f039e2ce8da8495db48c88769b8e3f13229b53856",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.3.0",
      "date": "2026-09-23T17:28:13.000Z",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/86c5048e823baa041c60fc8af88d7ccc54063620fc0ed8c3222bd38851990d7e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.3.0",
      "date": "2026-09-23T17:27:58.000Z",
      "commit": "7a375e1d8474cd059df228a2d9e1b66a88c054c5",
      "fileid": "https://r2.ropensci.org/fbe20246b976059c8d2d936ee883d668300e424ef246e3a3ce96b58b38870eee",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pachadotdev/actions/runs/35895179149"
    }
  ]
}