← Back to all sparks
T

tibblify

ANALYTICS
Velocity0.0

tibblify learned to derive its own specs from OpenAPI, removing the step users disliked most

rjsondata rectanglingopenapicbreaking changes
Current state
tibblify converts nested lists and JSON into rectangular tibbles using an explicit specification of the expected structure. Its 0.2.0 rewrite moved the engine to C and reset the API; 0.3.1 then added a path to generate specifications from an OpenAPI document rather than hand-writing them. 0.4.0 in May 2026 is the first release in over two years, and it is a breaking cleanup.
Where it's heading
The arc runs from 'write a spec by hand' toward 'the spec comes from somewhere else'. Alongside the OpenAPI importer, guess_tspec() gained exported variants so users can override its dispatch, and untibblify() now picks up the tib_spec attribute automatically. 0.4.0's breaking change prefixes all arguments of dot-accepting functions with a period to avoid collisions with column names, softened by a once-per-session deprecation warning, and refactors the entire codebase.
Prediction
The un-dotted argument forms are explicitly slated for removal, so the next release most likely completes that deprecation. Whether the 0.4.0 refactor introduced corner-case regressions is the open question the release notes themselves raise.

Recent moves

  1. 3mo ago

    Fix type mismatch in C code

    A single C type mismatch fix, four days after 0.4.0. Cleanup on the refactor.

    View source ↗
  2. 3mo ago

    Dot-prefixed arguments and a full internal refactor

    Prefixes all arguments of functions taking meaningful named ... with a period, so user column names cannot collide with argument names, with un-dotted forms warning once per session before removal. The entire codebase is refactored, which the notes acknowledge may have changed corner cases. Exports the remaining guess_tspec() variants and makes untibblify() use the tib_spec attribute automatically.

    View source ↗
  3. 2y ago

    parse_openapi_spec() generates tibblify specs from API documentation

    ⚡ SPARK

    Adds parse_openapi_spec() and parse_openapi_schema() to convert an OpenAPI specification directly into a tibblify specification, removing the hand-authoring step for any documented API. Also adds unpack_tspec(), fixes tib_vector() ptypes inside tib_df(), and improves spec-family performance and guessing.

    View source ↗
  4. 3y ago

    Recursive specs, transform control and memory fixes

    Adds tspec_recursive() and tib_recursive() for tree-shaped structures such as directory trees, splits transformation into whole-vector transform and per-element elt_transform, and fixes a memory leak while making tib_vector() faster and lighter. Fills in the structural cases the C rewrite left out.

    View source ↗
  5. 4y ago

    Engine rewritten in C with a renamed specification API

    ⚡ SPARK

    A major rewrite: tibblify() is reimplemented in C, column-major format is supported, and the entire specification vocabulary is renamed from lcols()/lcol_int() to tspec_df()/tib_int(). Adds untibblify() to reverse the operation, spec_combine() to merge specifications, and an unspecified argument controlling how unknown fields are handled.

    View source ↗