{
  "_id": "6ad67f6d4b18b90089998596",
  "Package": "cppally",
  "Title": "A 'C++20' API for R",
  "Version": "1.1.0.9000",
  "Authors@R": "c(\nperson(\"Nick\", \"Christofides\", , \"nick.christofides.r@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0002-9743-7342\")),\nperson(\"Martin Leitner-Ankerl\", role = \"cph\",\ncomment = \"Author of bundled ankerl::unordered_dense library\"),\nperson(\"Malte Skarupke\", role = \"cph\",\ncomment = \"Author of ska_sort, from which to_radix_key in sort.h is adapted\"),\nperson(\"Ryo Suzuki\", role = \"cph\",\ncomment = \"Author of bundled Xoshiro-cpp library\"),\nperson(\"Posit Software, PBC\", role = \"cph\",\ncomment = \"SEXP protection mechanism in r_protect.h inspired by cpp11\"))",
  "Maintainer": "Nick Christofides <nick.christofides.r@gmail.com>",
  "Description": "A header-only 'C++20' API for manipulating R data\nstructures from 'C++'. Provides 'C++20' concepts specific to R,\ncustom scalar and vector classes with built-in NA handling,\nautomatic object protection, 'SIMD'\n(single-instruction-multiple-data), parallelisation, and a\nstreamlined system for registering 'C++' functions, including\ntemplates, to R. Full API reference and documentation are\navailable at <https://nicchr.github.io/cppally/>.",
  "License": "MIT + file LICENSE",
  "URL": "https://nicchr.github.io/cppally/",
  "BugReports": "https://github.com/NicChr/cppally/issues/",
  "VignetteBuilder": "knitr",
  "Config/Needs/cppally/cpp_register": "brio, cli, decor, desc, glue, purrr,\nreadr, stringr, vctrs, withr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "SystemRequirements": "C++20",
  "Config/roxygen2/version": "8.0.0",
  "Config/Needs/website": "rmarkdown",
  "Repository": "https://nicchr.r-universe.dev",
  "Date/Publication": "2026-10-19 07:00:15 UTC",
  "RemoteUrl": "https://github.com/nicchr/cppally",
  "RemoteRef": "HEAD",
  "RemoteSha": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-19 20:20:05 UTC",
    "User": "root"
  },
  "Author": "Nick Christofides [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0002-9743-7342>),\nMartin Leitner-Ankerl [cph] (Author of bundled ankerl::unordered_dense\nlibrary),\nMalte Skarupke [cph] (Author of ska_sort, from which to_radix_key in\nsort.h is adapted),\nRyo Suzuki [cph] (Author of bundled Xoshiro-cpp library),\nPosit Software, PBC [cph] (SEXP protection mechanism in r_protect.h\ninspired by cpp11)",
  "_user": "nicchr",
  "_type": "src",
  "_file": "cppally_1.1.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/78c0bcd0dc96942aa1422572197476fd3e79e180981f8460509927503113f5b8",
  "_filesize": 1287447,
  "_sha256": "78c0bcd0dc96942aa1422572197476fd3e79e180981f8460509927503113f5b8",
  "_expires": "2027-01-27T20:36:58.000Z",
  "_created": "2026-10-19T20:20:05.000Z",
  "_published": "2026-10-19T20:37:01.006Z",
  "_upstream": "https://github.com/nicchr/cppally",
  "_status": "success",
  "_maintainer": {
    "name": "Nick Christofides",
    "email": "nick.christofides.r@gmail.com",
    "orcid": "0000-0002-9743-7342"
  },
  "_jobs": [
    {
      "job": 118286062188,
      "time": 139,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12219257871"
    },
    {
      "job": 118286062248,
      "time": 175,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12219118274"
    },
    {
      "job": 118286062338,
      "time": 95,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12218884066"
    },
    {
      "job": 118286062266,
      "time": 117,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12220186004"
    },
    {
      "job": 118282226432,
      "time": 478,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12219246518"
    },
    {
      "job": 118286062237,
      "time": 107,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12217838303"
    },
    {
      "job": 118286062219,
      "time": 83,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12218024792"
    },
    {
      "job": 118286062479,
      "time": 80,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12218234586"
    },
    {
      "job": 118286062186,
      "time": 60,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12219382407"
    }
  ],
  "_buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252",
  "_commit": {
    "id": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
    "author": "Nick Christofides <118103879+NicChr@users.noreply.github.com>",
    "committer": "Nick Christofides <118103879+NicChr@users.noreply.github.com>",
    "message": "Unwrap input before r_dbl construction\n",
    "time": 1792393215
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.5.0",
      "role": "Depends"
    },
    {
      "package": "bench",
      "role": "Suggests"
    },
    {
      "package": "bit64",
      "role": "Suggests"
    },
    {
      "package": "brio",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "cli",
      "role": "Suggests"
    },
    {
      "package": "cpp11",
      "role": "Suggests"
    },
    {
      "package": "decor",
      "role": "Suggests"
    },
    {
      "package": "desc",
      "role": "Suggests"
    },
    {
      "package": "devtools",
      "role": "Suggests"
    },
    {
      "package": "fs",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "glue",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgbuild",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    },
    {
      "package": "purrr",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "roxygen2",
      "role": "Suggests"
    },
    {
      "package": "rstudioapi",
      "role": "Suggests"
    },
    {
      "package": "stringr",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tidyr",
      "role": "Suggests"
    },
    {
      "package": "usethis",
      "role": "Suggests"
    },
    {
      "package": "vctrs",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "nicchr",
  "_selfowned": true,
  "_usedby": 2,
  "_updates": [
    {
      "week": "2026-05",
      "n": 10
    },
    {
      "week": "2026-06",
      "n": 38
    },
    {
      "week": "2026-07",
      "n": 39
    },
    {
      "week": "2026-08",
      "n": 9
    },
    {
      "week": "2026-09",
      "n": 4
    },
    {
      "week": "2026-10",
      "n": 9
    },
    {
      "week": "2026-11",
      "n": 44
    },
    {
      "week": "2026-12",
      "n": 43
    },
    {
      "week": "2026-13",
      "n": 103
    },
    {
      "week": "2026-14",
      "n": 53
    },
    {
      "week": "2026-15",
      "n": 81
    },
    {
      "week": "2026-16",
      "n": 61
    },
    {
      "week": "2026-17",
      "n": 53
    },
    {
      "week": "2026-18",
      "n": 34
    },
    {
      "week": "2026-20",
      "n": 48
    },
    {
      "week": "2026-21",
      "n": 40
    },
    {
      "week": "2026-22",
      "n": 68
    },
    {
      "week": "2026-23",
      "n": 14
    },
    {
      "week": "2026-24",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 27
    },
    {
      "week": "2026-26",
      "n": 61
    },
    {
      "week": "2026-27",
      "n": 42
    },
    {
      "week": "2026-28",
      "n": 86
    },
    {
      "week": "2026-29",
      "n": 94
    },
    {
      "week": "2026-30",
      "n": 104
    },
    {
      "week": "2026-31",
      "n": 62
    },
    {
      "week": "2026-32",
      "n": 47
    },
    {
      "week": "2026-33",
      "n": 71
    },
    {
      "week": "2026-34",
      "n": 62
    },
    {
      "week": "2026-35",
      "n": 23
    },
    {
      "week": "2026-36",
      "n": 47
    },
    {
      "week": "2026-37",
      "n": 102
    },
    {
      "week": "2026-38",
      "n": 24
    },
    {
      "week": "2026-39",
      "n": 33
    },
    {
      "week": "2026-40",
      "n": 99
    },
    {
      "week": "2026-41",
      "n": 54
    },
    {
      "week": "2026-42",
      "n": 35
    },
    {
      "week": "2026-43",
      "n": 4
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-04-25"
    },
    {
      "name": "v1.0.0",
      "date": "2026-07-02"
    },
    {
      "name": "v1.1.0",
      "date": "2026-07-12"
    }
  ],
  "_stars": 2,
  "_contributors": [
    {
      "user": "nicchr",
      "count": 2236,
      "uuid": 118103879
    }
  ],
  "_userbio": {
    "uuid": 118103879,
    "type": "user",
    "name": "Nick Christofides",
    "followers": 18,
    "description": "R | Epidemiology | All things Tidy"
  },
  "_downloads": {
    "count": 169,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/cppally"
  },
  "_devurl": "https://github.com/nicchr/cppally",
  "_pkgdown": "https://nicchr.github.io/cppally/",
  "_searchresults": 9,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/cppally.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/nicchr/cppally",
  "_realowner": "nicchr",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-04-28"
    },
    {
      "version": "1.0.0",
      "date": "2026-07-02"
    },
    {
      "version": "1.1.0",
      "date": "2026-07-12"
    }
  ],
  "_exports": [
    "cpp_eval",
    "cpp_register",
    "cpp_source",
    "document",
    "load_all",
    "use_check_data_frames",
    "use_check_factors",
    "use_copy_on_modify",
    "use_cppally",
    "use_openmp",
    "use_preserve_altrep_flag",
    "use_template_dispatch_candidates"
  ],
  "_help": [
    {
      "page": "cpp_register",
      "title": "Generates wrappers for registered C++ functions",
      "topics": [
        "cpp_register"
      ]
    },
    {
      "page": "cpp_source",
      "title": "Compile C++20 code",
      "topics": [
        "cpp_eval",
        "cpp_source"
      ]
    },
    {
      "page": "document",
      "title": "A wrapper around 'devtools::document()' to support cppally package development",
      "topics": [
        "document"
      ]
    },
    {
      "page": "load_all",
      "title": "A wrapper around 'devtools::load_all()' specifically for cppally",
      "topics": [
        "load_all"
      ]
    },
    {
      "page": "use_check_data_frames",
      "title": "Deprecated.",
      "topics": [
        "use_check_data_frames"
      ]
    },
    {
      "page": "use_check_factors",
      "title": "Adds the 'CPPALLY_CHECK_FACTORS' flag to Makevars",
      "topics": [
        "use_check_factors"
      ]
    },
    {
      "page": "use_copy_on_modify",
      "title": "Adds the 'CPPALLY_COPY_ON_MODIFY' flag to Makevars",
      "topics": [
        "use_copy_on_modify"
      ]
    },
    {
      "page": "use_cppally",
      "title": "Helper for developing packages with cppally",
      "topics": [
        "use_cppally"
      ]
    },
    {
      "page": "use_openmp",
      "title": "Add OpenMP flags to Makevars",
      "topics": [
        "use_openmp"
      ]
    },
    {
      "page": "use_preserve_altrep_flag",
      "title": "Adds the CPPALLY_PRESERVE_ALTREP flag to Makevars",
      "topics": [
        "use_preserve_altrep_flag"
      ]
    },
    {
      "page": "use_template_dispatch_candidates",
      "title": "Restrict the R/C++ types a template function will dispatch on",
      "topics": [
        "use_template_dispatch_candidates"
      ]
    }
  ],
  "_readme": "https://github.com/nicchr/cppally/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "protection.Rmd",
      "filename": "protection.html",
      "title": "Automatic Protection",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Motivation and design",
        "Protection benchmark: cpp11 vs cppally",
        "cppally views: A solution to the protection overhead problem",
        "r_str_view",
        "view()",
        "Using views safely"
      ],
      "created": "2026-04-11 08:46:37",
      "modified": "2026-09-12 13:26:56",
      "commits": 13
    },
    {
      "source": "functionals.Rmd",
      "filename": "functionals.html",
      "title": "Functional Programming with cppally",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A note on writing code in C++ versus R",
        "pmap",
        "reduce",
        "Returning early",
        "Other pmap helpers",
        "Multi-threading safety",
        "Lagged operations",
        "In-place functionals",
        "Vectorised math",
        "Grouped operations",
        "Applying a C++ function by group"
      ],
      "created": "2026-06-28 09:15:53",
      "modified": "2026-10-06 06:26:24",
      "commits": 5
    },
    {
      "source": "cppally.Rmd",
      "filename": "cppally.html",
      "title": "Getting started with cppally",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "Registering C++ functions (to R)",
        "Registering C++ functions outside of a package context",
        "Registering C++ functions inside a cppally-linked package",
        "General steps to using cppally in a package",
        "C++ types",
        "Scalars",
        "logical scalar - r_lgl",
        "NA values",
        "C++ NA values and their R C API equivalents",
        "Checking equality",
        "Scalar operators",
        "Scalar arithmetic operators",
        "Scalar relational operators",
        "Vectors",
        "inline vectors",
        "Scalar math",
        "Coercion",
        "Strings",
        "Dates and date-times",
        "Adding days, months, and years",
        "Accessing date components",
        "Date rounding",
        "Difference between two dates",
        "Fractional months",
        "Symbols",
        "Cached strings & symbols",
        "Lists",
        "Factors",
        "Calling R functions",
        "Value matching",
        "Subsetting",
        "Concepts and Templates",
        "How it works",
        "Templates without function arguments",
        "Attributes",
        "Regular sequences",
        "Using multiple OpenMP threads",
        "Stats functions",
        "A note on cppally::sum",
        "Unique values",
        "Sorting",
        "Grouping",
        "Annex",
        "Unsupported classes in R-registered templates",
        "All core cppally concepts",
        "Accessing the underlying types and values"
      ],
      "created": "2026-04-23 21:40:52",
      "modified": "2026-10-14 10:03:29",
      "commits": 33
    },
    {
      "source": "random.Rmd",
      "filename": "random.html",
      "title": "Random number generation",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Creating a stream",
        "Reusing one stream",
        "Explicit seeds",
        "index()",
        "Example: efficient sample with replacement",
        "Using  distributions",
        "Calling R C API RNG functions",
        "Bootstrapping",
        "Comparison to R - benchmark",
        "A flexible and fast bootstrapper",
        "Engine"
      ],
      "created": "2026-08-04 11:39:06",
      "modified": "2026-09-28 11:18:37",
      "commits": 4
    },
    {
      "source": "vector_names.Rmd",
      "filename": "vector_names.html",
      "title": "Vector Names",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Performance of indexing by location versus name",
        "Generated R code",
        "Generated C++ code",
        "The cost of first lookup",
        "The cost of many lookups",
        "Future development"
      ],
      "created": "2026-10-14 10:03:29",
      "modified": "2026-10-14 10:03:29",
      "commits": 1
    }
  ],
  "_score": 7.056904851336473,
  "_indexed": true,
  "_nocasepkg": "cppally",
  "_universes": [
    "nicchr"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:22:29.000Z",
      "distro": "resolute",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/94116eee589699f8cc580fc7a2ef854e52af7a6f6138566494e0ca9f39019eb2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:23:05.000Z",
      "distro": "resolute",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/e70ffa6cdda4858ca17db1d5146af16892fd39f46cfc50475bffc670a5c7a1a1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:36:04.000Z",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/a89c0ab5f11e2a495a5175742d00eaea4f38773d29aebbefc14fd7eb0f0c8fd3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:36:23.000Z",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/d1aabd67bb02170e11d8140f835e2366927554edbdfdf58388c17e02b3d81372",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:22:45.000Z",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/1e4de994c707d404c6a00feee8360f95194b4cbd076176df2ea61523a4809106",
      "status": "success",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:21:29.000Z",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/d04b5d8c2017094d7469c37409a0bbb21bd6555eb6f2ce2ce8d85d50e88f8765",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:21:25.000Z",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/21ea333c8d8bfa3e4182a239ba0b21b9ca0704928a0d3b740ce49e016c5ea690",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.1.0.9000",
      "date": "2026-10-19T20:21:12.000Z",
      "commit": "b84b4fac68df74599d7ff03bd353eb227d0e92b7",
      "fileid": "https://r2.ropensci.org/b92b73f9efc2886dbc6c5af637a0fc540228d641de266d2e79bbe44e77640aca",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/nicchr/actions/runs/39317318252"
    }
  ]
}