xptr: Manipulating External Pointers
About
External pointers are a powerful tool supported by the C API of the R environment and language that is documented in the Writing R Extensions manual. But there is limited native support for external pointers on the R side. This package provides some basic tools to verify, create, modify, and tag 'externalptr' objects
Usage
library(xptr)
a <- new_xptr("0x11a888090")
b <- new_xptr("0x11a888098")
is_xptr(a)
#> [1] TRUE
xptr_address(a)
#> [1] "0x11a888090"
xptr_clear(a)
is_null_xptr(a)
#> [1] TRUE
set_xptr_address(a, xptr_address(b))
xptr_address(a) # default 'pointer' variant
#> [1] "0x11a888098"
> xptr_address(a, FALSE) # non-'pointer' variant
[1] "4740120728"
>
Installation
The package is not currently on CRAN.
The r-univere page has source and binary builds from the repository version which
may differ from the CRAN version and shows how to install them. Lastly, one can always rely on
remotes::install_github()
:
> remotes::install_github("eddelbuettel/xptr")
Author
Randy Lai created the R package and prepared versions 1.0 to 1.1.3 between 2017 and 2020.
Dirk Eddelbuettel adopted the package in 2025.
License
MIT