This function reads an RCDF (Reusable Data Container Format) archive, decrypts its contents using the specified decryption key, and loads it into R as an RCDF object. The data files within the archive (usually Parquet files) are decrypted and, if provided, metadata (such as data dictionary and value sets) are applied to the data.
Arguments
- path
A string specifying the path to the RCDF archive (zip file).
- decryption_key
The key used to decrypt the RCDF contents. This can be an RSA or AES key, depending on how the RCDF was encrypted.
- ...
Additional parameters passed to other functions, if needed.
- password
A password used for RSA decryption (optional).
- metadata
An optional metadata object containing data dictionaries and value sets. This metadata is applied to the data if provided.
Value
An RCDF object, which is a list of Parquet files (one for each record) along with attached metadata.
Examples
dir <- system.file("extdata", package = "rcdf")
rcdf_path <- file.path(dir, 'mtcars.rcdf')
private_key <- file.path(dir, 'sample-private-key.pem')
rcdf_data <- read_rcdf(path = rcdf_path, decryption_key = private_key)
rcdf_data
#> $mtcars
#> Table
#> 32 rows x 11 columns
#> $mpg <double>
#> $cyl <double>
#> $disp <double>
#> $hp <double>
#> $drat <double>
#> $wt <double>
#> $qsec <double>
#> $vs <double>
#> $am <double>
#> $gear <double>
#> $carb <double>
#>
#> See $metadata for additional Schema metadata
#>
#> attr(,"metadata")
#> attr(,"metadata")$log_id
#> [1] "cd2c7923-b59a-45d4-a229-ece2a7d08b39"
#>
#> attr(,"metadata")$key_app
#> [1] "QnNixka1a8HbTUS7/rUfPWpFMj5/Dqw7WuDbJ2Fdzko6kKQEtFArJB+KqJ+slZb14cXhstc8Qjt9tUuS5IxTS5rq3JAlei6wInB05Jv1qqp6jtv+/soVxid7oiUxRfOLbguk9WSigoAecJn6qQHwhRYrN4vLs/FvOHYO6h0SfKJBvZekil9mVJLayY7AusN09LQIm36ZOdi4mNpvmvaZwmLwBUdIocd/c57smGCZODU0R4byT6OjHkNP9QesvuNVpyuDEALoA7tzNdDiKjVTBRbEeTkXRb6lnM6PybL0FYaQiBoDPItiWTmjQEiZSzDZo5DREqoymq0LFN4MrxJ+dA=="
#>
#> attr(,"metadata")$iv_app
#> [1] "TWKANaldZMAFL4XyvekGKLnE9+oNLloN0DR5BBqCG3r4fVF/Y1as5/TX4yWJt2iwwEgCrrsntjqzeyeBskX2Q9Xcwgao2IGDVklg1q4jhsaC5YnlaZ0NekZe7qLpVWzJJjAFwc5PxIZnXu1z7XPfvBzDeriR40eRHY+IZZAa+iji+BAZ9DBK8cztuTp7F2fggrReji8vG0AC8QA/aBSOI/NwScMAdivlhF+26BCoX6ua+J0G5diCW3MyBRe5iR+6KYA/ZtEL8/gdo7VjMvL6+08rl3ikfPPE8hVKw0iIGHdm7yQanwVEDpgFBJ+nX5rw8quOVhNoqCESvOyfkaA+5w=="
#>
#> attr(,"metadata")$key_admin
#> [1] "kuuwMAN7OD0ryQ+6o490KEpcw78ZFaChkXbRrZK9MzBFc0LhcXFDIx3zvYCxnqScNOJ6t4MMCg0jIEkEOl7V4xPnDeuHqFpdcjZB8u3W1A5LB8O/NIjf8Oj6DWnyxKhbhU8DYGGRCnRVsPJuLKv2/wxio0o+VAH7QYRCjCfuJDyzqXW3orLCUeTCd1pfrdh5x0hITvSLnHIysGihWMT29E+VLeEuALb3cNMutGpr0V86boBT+RIeyNkSphatC8N22K6J/+SsKJtnu/3P5pg3pMouJzgxqHieE9Li9oAgkMIxc0Xam5nqh2MYEt7HRI9vyoWMCOmCnCgIM8mmh0/cLQ=="
#>
#> attr(,"metadata")$iv_admin
#> [1] "LB+hdBdak78G+oMmsw6IrVy10VsUDCox/HngWJ2qGPr2BR6sHNHugQh7dGiRxD3j9MAsyx4l0oTpczSMrKPJC5bnESnlOYZgBST4kaSF0m7crIQ0iRcjzWg8DEyDEPjI3XUif951UnjZY+tzxQAsCDc8BjMOTaoe/T99P8ViIdXDS/MQKFKmUgQEK607FrIf4DLtHDqn/QPj3JWrEc/CQgL52QyOMNsDD2thOBfrNZslVBRTx/n+EWV2L9Ga3MaDPjXxTkbStz8hc3IMWZ8MVGSgGoOpqjAU5zAkUpqo1Y03/MSZa3Z5M0XBD+w1PtIqmh3jsY5oxW6hG7ug+ZaXHQ=="
#>
#> attr(,"metadata")$pc_os
#> [1] "darwin"
#>
#> attr(,"metadata")$pc_os_release_date
#> [1] "Tue Apr 22 19:54:49 PDT 2025"
#>
#> attr(,"metadata")$pc_os_version
#> [1] "24.5.0"
#>
#> attr(,"metadata")$pc_hardware
#> [1] "arm64"
#>
#> attr(,"metadata")$created_at
#> [1] "2025-08-23 13:03:40"
#>
#> attr(,"metadata")$version
#> [1] 1
#>
#> attr(,"metadata")$checksum
#> file value
#> 1 mtcars.parquet e89abe4f7eab505621a99fda1eb8cc2f
#>
#> attr(,"metadata")$dir
#> [1] "/tmp/RtmpWGXC1Q/__rcdf_temp__/mtcars"
#>
#> attr(,"class")
#> [1] "list" "rcdf"
# Using encrypted/password protected private key
rcdf_path_pw <- file.path(dir, 'mtcars-pw.rcdf')
private_key_pw <- file.path(dir, 'sample-private-key-pw.pem')
pw <- '1234'
rcdf_data_with_pw <- read_rcdf(
path = rcdf_path_pw,
decryption_key = private_key_pw,
password = pw
)
rcdf_data_with_pw
#> $mtcars
#> Table
#> 32 rows x 11 columns
#> $mpg <double>
#> $cyl <double>
#> $disp <double>
#> $hp <double>
#> $drat <double>
#> $wt <double>
#> $qsec <double>
#> $vs <double>
#> $am <double>
#> $gear <double>
#> $carb <double>
#>
#> See $metadata for additional Schema metadata
#>
#> attr(,"metadata")
#> attr(,"metadata")$log_id
#> [1] "8c20de9d-3bd8-4f34-8548-7081a769ff57"
#>
#> attr(,"metadata")$key_app
#> [1] "JkcnTsjt/qp0W+5SESZVDS0qZdsGWiQTFc9v/RgcnuEbHCfyRx22WbeYsSPlAczXvN5NcIOWT0ZXEolBlW5EGfCUn8NkHOrzH3qXD7x/bJKHDGx5fv8imYKyeZYgndIA1BiEU04jiOcYeUsVIJmPvpjp3fNvbmWyBnaw1iYQh/Kr19Gvye+8dgpALswXdhXSq7mfs+dZo546MhxSWiH1LCvMJ+OINz4DCC98ZHRukO/EXcYVYVcgMxyNm/Rc/YfAOxYUqWukAgqYEoTqkgz8E8IzSxXNPlfbC4X7ONgw2bOW37cuvKdhrrsw1Oes5TTpgCv9aazFKhl5kEDfzEJlPQ=="
#>
#> attr(,"metadata")$iv_app
#> [1] "Oz5finlVo1deTRKH+8ZuDECAwSP6fxmeIhwXSbtvxX2qMgDSyrCpChnCJQgVMsrjQnuhHZzQ3xc7mdJabO5S/JaugUjOzgMDg/HH5/5b5CKbuVsLfnPPWpyj37RhVIquNbS5hFas15MTnyk3ASNqMn3VQW3xjC9xvXceJ6FPhonILFlCYy0vd5D+bEMl7bLrpUhczFWZfZFQOhxv6SguuK3KgK5WdRtiq3CUyvpTmgjpX7n+ka9SkH/o/2KyHgjiC6niSdzAkcIGk205sWdsoigcz9pTZ+WKLNbvxWasD5NFB/xKuldOjdmo4+qQ/UWgzmq4xY7JPyez4obQneRHjw=="
#>
#> attr(,"metadata")$key_admin
#> [1] "T9p8Aok+lF+CpfDP7iTp1eeY7UzqFqGD9Bg2LkA1Ge1+f5qr+2nKaR29HajZiSaQharElT9lvrsZ+eNej114d+4yVOS7zqNsy0w3ffTgUeUc1sHIHow4bX89+mleuKuofQxe5TcG/wFAZ0qYcaP3RtBkarnqf1ZdRBjhxWi/gHBu8Y+GD20lyd+49eCBvOPkrr/OaL7o+Cj9C9dV5hh2wweiCEMp95cWrK6gnvuB6K1wnJWSv83ql3Hhl7EqNV4oHY8RQNib3JFeHEJ3jxaouFhDEP2i49bigq1RUFnV1bDO/YeWTjkXzB6KT/mPvgZmnGnOexnUpPiOlEOT+ImYng=="
#>
#> attr(,"metadata")$iv_admin
#> [1] "RYewhhMVXOXQpvb7kx7vSrmkSQGjVoy0x6+gg2bY3osKtbAEs+yNouWTjd+tIp8/gTmB2Eucfz+FOwQxhbmx3KMg7v4MTWqVFMm71MUmiVAQESax2TSI//aEefW+wkg1/l3AMhrhG5xEgSa2jMg3oRW4r8CmH21BeUvtPjBP7yk1x0h5tvCcHuGIlLeFxEIeGldl4I64mlADX9lEZ+VbmIMbye0DrqbA13YfvGnmYhuRFWOo32odBqZ+4dkCdzClRc5gWlQTP3YftEKKOWg00L88fEpiZUCK7Jv29D5+yAPZTnAtI0JvAH3TAuWYUa9fmxKL/bTKBUBuF8naInQl1A=="
#>
#> attr(,"metadata")$pc_os
#> [1] "darwin"
#>
#> attr(,"metadata")$pc_os_release_date
#> [1] "Tue Apr 22 19:54:49 PDT 2025"
#>
#> attr(,"metadata")$pc_os_version
#> [1] "24.5.0"
#>
#> attr(,"metadata")$pc_hardware
#> [1] "arm64"
#>
#> attr(,"metadata")$created_at
#> [1] "2025-08-23 13:03:48"
#>
#> attr(,"metadata")$version
#> [1] 1
#>
#> attr(,"metadata")$checksum
#> file value
#> 1 mtcars.parquet 9534342a18251e405704905deed9ba0f
#>
#> attr(,"metadata")$dir
#> [1] "/tmp/RtmpWGXC1Q/__rcdf_temp__/mtcars-pw"
#>
#> attr(,"class")
#> [1] "list" "rcdf"