Skip to content

rcdf

A Comprehensive Toolkit for Working with Encrypted Parquet Files

v0.1.5 · Mar 7, 2026 · MIT + file LICENSE

Description

Utilities for reading, writing, and managing RCDF files, including encryption and decryption support. It offers a flexible interface for handling data stored in encrypted Parquet format, along with metadata extraction, key management, and secure operations using AES and RSA encryptions.

Downloads

3.4K

Last 30 days

2223rd

3.7K

Last 90 days

8.4K

Last year

Trend: +774% (30d vs prior 30d)

CRAN Check Status

1 ERROR
13 OK
Show all 14 flavors
Flavor Status
r-devel-linux-x86_64-debian-clang OK
r-devel-linux-x86_64-debian-gcc OK
r-devel-linux-x86_64-fedora-clang ERROR
r-devel-linux-x86_64-fedora-gcc OK
r-devel-macos-arm64 OK
r-devel-windows-x86_64 OK
r-oldrel-macos-arm64 OK
r-oldrel-macos-x86_64 OK
r-oldrel-windows-x86_64 OK
r-patched-linux-x86_64 OK
r-release-linux-x86_64 OK
r-release-macos-arm64 OK
r-release-macos-x86_64 OK
r-release-windows-x86_64 OK
Check details (2 non-OK)
ERROR r-devel-linux-x86_64-fedora-clang

examples

Running examples in ‘rcdf-Ex.R’ failed
The error most likely occurred in:

> ### Name: write_rcdf_csv
> ### Title: Write RCDF data to CSV files
> ### Aliases: write_rcdf_csv
> 
> ### ** Examples
> 
> dir <- system.file("extdata", package = "rcdf")
> rcdf_path <- file.path(dir, 'mtcars.rcdf')
> private_key <- file.path(dir, 'sample-private-key-pw.pem')
> 
> rcdf_data <- read_rcdf(path = rcdf_path, decryption_key = private_key, password = '1234')

 *** caught segfault ***
address 0x3, cause 'memory not mapped'

Traceback:
 1: rapi_prepare(conn, query, env)
 2: withCallingHandlers(expr, condition = function(cnd) {    {        .__handler_frame__. <- TRUE        .__setup_frame__. <- frame        if (inherits(cnd, "message")) {            except <- c("warning", "error")        }        else if (inherits(cnd, "warning")) {            except <- "error"        }        else {            except <- ""        }    }    while (!is_null(cnd)) {        if (inherits(cnd, "error")) {            out <- 
...[truncated]...
_prepare(conn@conn_ref, statement, env)
 9: .local(conn, statement, ...)
10: dbSendQuery(conn, statement, ...)
11: dbSendQuery(conn, statement, ...)
12: dbSendStatement(conn, statement, ...)
13: dbSendStatement(conn, statement, ...)
14: DBI::dbExecute(conn, glue::glue_sql("CREATE TABLE {`record`} AS\n         SELECT * FROM read_parquet({pq_file},\n         encryption_config = {{ footer_key: {secret$key} }});",     .con = conn))
15: DBI::dbExecute(conn, glue::glue_sql("CREATE TABLE {`record`} AS\n         SELECT * FROM read_parquet({pq_file},\n         encryption_config = {{ footer_key: {secret$key} }});",     .con = conn))
16: process_parquet_file(conn, pq_file, secret, pk)
17: process_rcdf_file(conn = conn, rcdf_file = rcdf_files[i], key = creds$keys[i],     password = creds$passwords[i], metadata = metadata, ignore_duplicates = ignore_duplicates)
18: read_rcdf(path = rcdf_path, decryption_key = private_key, password = "1234")
An irrecoverable exception occurred. R is aborting now ...
ERROR r-devel-linux-x86_64-fedora-clang

tests

Running ‘testthat.R’ [5s/14s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional test configuration?
  > # Learn more about the roles of various files in:
  > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
  > # * https://testthat.r-lib.org/articles/special-files.html
  > 
  > library(testthat)
  > library(rcdf)
  > 
  > test_check("rcdf")
  
   *** caught segfault ***
  address 0xf8, cause 'memory not mapped'
  
  Traceback:
   1: rapi_execute(stmt, convert_opts)
   2: withCallingHandlers(expr, condition = function(cnd) {    {        .__handler_frame__. <- TRUE        .__setup_frame__. <- frame        if (inherits(cnd, "message")) {            except <- c("warning", "error")        }        else if (inherits(cnd, "warning")) {            except <- "error"        }        else {            except <- 
...[truncated]...
(conditionMessage(cnd), "\n")    NULL})
  49: with_reporter(reporters$multi, lapply(test_paths, test_one_file,     env = env, desc = desc, shuffle = shuffle, error_call = error_call))
  50: test_files_serial(test_dir = test_dir, test_package = test_package,     test_paths = test_paths, load_helpers = load_helpers, reporter = reporter,     env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning,     desc = desc, load_package = load_package, shuffle = shuffle,     error_call = error_call)
  51: test_files(test_dir = path, test_paths = test_paths, test_package = package,     reporter = reporter, load_helpers = load_helpers, env = env,     stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning,     load_package = load_package, parallel = parallel, shuffle = shuffle)
  52: test_dir("testthat", package = package, reporter = reporter,     ..., load_package = "installed")
  53: test_check("rcdf")
  An irrecoverable exception occurred. R is aborting now ...

Check History

ERROR 13 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Mar 10, 2026
ERROR r-devel-linux-x86_64-fedora-clang

tests

Running ‘testthat.R’ [6s/15s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional t
...[truncated]...
kage = load_package, parallel = parallel, shuffle = shuffle)
  52: test_dir("testthat", package = package, reporter = reporter,     ..., load_package = "installed")
  53: test_check("rcdf")
  An irrecoverable exception occurred. R is aborting now ...

Dependency Network

Dependencies Reverse dependencies arrow duckdb haven openxlsx fs zip glue utils (>= 4.0.0) openssl dplyr stringr (>= 1.4.0) jsonlite DBI RSQLite (>= 2.2.0) uuid +1 more dependencies rcdf

Version History

new 0.1.5 Mar 10, 2026
updated 0.1.5 ← 0.1.4 diff Mar 7, 2026
updated 0.1.4 ← 0.1.3 diff Mar 2, 2026
updated 0.1.3 ← 0.1.2 diff Feb 11, 2026
updated 0.1.2 ← 0.1.1 diff Dec 2, 2025
updated 0.1.1 ← 0.1.0 diff Oct 11, 2025
new 0.1.0 Aug 27, 2025