← Back to all sparks
F

frictionless-r

DEVOPS
Velocity3.8

Read and Write Frictionless Data Packages

frictionless turns its internals into a public extension surface for Data Package readers

data packagesrstandardsextension apideprecationsropensci
Current state
frictionless is the R reference implementation of the Frictionless Data Package standard: read, edit and write datapackage.json plus its CSV resources. The 1.3.0 release is the first to make the package aware of which standard version a file targets, and the first to expose resource objects as a documented public API rather than an internal detail. Its release history arrives in irregular archive bursts rather than a steady cadence, and version numbers in the feed are not monotonic.
Where it's heading
The work has shifted from covering the standard to letting other packages build on top of it. Making resource() public, adding resource()<- for in-place overwrites, and moving package$directory and resource$read_from to attributes all separate the package's own state from the standard's properties, which is what downstream implementers need to add readers frictionless does not ship. The soft-deprecations of resources() and get_schema() point the same direction: a smaller, more deliberate public vocabulary.
Prediction
The version() plumbing and the explicit warning on non-1.0 datapackage.json files read as groundwork for Data Package v2 support; expect the next substantive release to start reading v2 files rather than only detecting them.

Recent moves

  1. 15d ago

    frictionless 1.3.0 makes resource objects a public API

    ⚡ SPARK

    The release that turns frictionless from a closed reader into something other packages can extend: resource() and resource()<- become public, internal properties move to attributes with a deprecation path, and version() finally detects which Data Package standard a file targets.

    View source ↗
  2. 5mo ago

    frictionless 1.2.1

    Housekeeping ahead of the API work: the stated R floor is corrected to 3.6.0, an empty resource list downgrades from error to warning, and example_package() gains a version parameter. Nothing here changes what the package can read.

    View source ↗
  3. 10mo ago

    frictionless 0.11.0

    A pre-1.0 release surfaced late in the feed — the version number sits below its neighbours, so treat it as archive backfill rather than a regression. It is the point where add_resource() started filling in format, mediatype and encoding itself and where the resource_names/datapackage attributes were first dropped, the same tidying 1.3.0 finishes.

    View source ↗
  4. 10mo ago

    frictionless 1.1.0

    Readability and speed work: print() gives a human summary instead of dumping a long list, read_resource() gains col_select to skip unwanted columns, and add_resource() passes custom properties through to the written package. Incremental against the arc, but the print() summary is the piece users see daily.

    View source ↗
  5. 10mo ago

    frictionless 1.2.0

    Resource replacement lands in add_resource(), null values survive a read/write round trip instead of collapsing to empty lists, and four vignettes take over the documentation load from the function reference. The vignette split is the maintenance move that made the later API tightening tractable.

    View source ↗
  6. 2y ago

    frictionless 1.0.3

    A CRAN build fix — stringi added to Suggests after rmarkdown dropped it. No user-facing change.

    View source ↗