Learn R Programming

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

Copy Link

Version

Install

install.packages('xptr')

Monthly Downloads

203

Version

1.2.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Dirk Eddelbuettel

Last Published

October 8th, 2025

Functions in xptr (1.2.0)

set_xptr_tag

Set a tag to the external pointer.
is_null_xptr

Check if the external pointer is null.
new_xptr

Create an external pointer object.
is_xptr

Check if an object is an external pointer.
xptr

Manipulating External Pointers
xptr_address

External pointer address.
xptr_protected

Protected R object of the external pointer.
set_xptr_address

Set the address of the external pointer.
set_xptr_protected

Set a protected R object to the external pointer.
register_xptr_finalizer

Register a finalizer for external pointer.
xptr_tag

Tag of the external pointer.
xptr_clear

Clear the pointer address of the external pointer.