← Back to all sparks
C

cheetahR

INFRA · APIS
Velocity0.0

High Performance Tables Using 'Cheetah Grid'

A canvas grid wrapper aiming at the row counts where R's HTML table widgets stop being usable.

r-packagesshinyhtmlwidgetsdata-tableseditable-grids
Current state
cheetahR wraps the Cheetah Grid JavaScript library as an R htmlwidget, positioned by its authors as an alternative to reactable for large datasets. The Shiny surface is now substantial: proxy functions, numeric and date column formatters, sorting, search, column groups, inline and menu cell editors, and a get_grid_data() helper that returns live grid contents as a reactive data frame. The most recent release adds an autocomplete column that suggests values from a list while still accepting free text.
Where it's heading
The arc moves from rendering to editing. Early releases added the read-side affordances a table needs, sorting, search and column grouping, while the last two have been about the grid as an input: proxy functions, cell editors, a typeahead column, and a way to read the edited state back into Shiny. The releases are sparse, roughly three in fourteen months, so this is steady rather than fast work, and the fix in 0.4.0 for renderCheetah() stacking duplicate grids suggests the Shiny integration is still being shaken out under real reactive use.
Prediction
The editing thread points at more column action types and validation on committed values, since an autocomplete that accepts arbitrary text leaves the checking to the app. The performance claim that motivates the package is asserted rather than measured anywhere in these entries.

Recent moves

  1. 2mo ago

    v0.4.0: editable Shiny tables get a typeahead column

    The clearest step yet toward the grid as an input rather than an output: an autocomplete column type for typeahead cell editing, and get_grid_data() to read the live contents back as a reactive data frame. The renderCheetah() fix, where changing reactive dependencies stacked a new grid on the old one, is the kind of bug that only surfaces once people are actually driving the widget from Shiny.

    View source ↗
  2. 1y ago

    Shiny proxy functions, numeric and date column formatters

    Proxy functions open the path to updating a rendered grid from the server, which is the foundation the later editing work sits on. Numeric and date formatters plus a datetime fix cover the column types most business tables need before the widget is usable in production.

    View source ↗
  3. 1y ago

    Sorting, search bar, column groups and an inline menu editor

    The release that makes the grid behave like a table rather than a fast renderer: sorting, a search bar, column grouping and the first inline editor arrive together. It also marks the point where contributions broaden beyond a single author.

    View source ↗
  4. 1y ago

    First release: Cheetah Grid wrapped as an R table widget

    The initial release exposes a single cheetah() function to render a data frame, with the stated ambition of handling very large row counts as an alternative to reactable and similar widgets. The performance positioning is the package's own claim and is not benchmarked here; what actually ships at this point is a thin wrapper with one entry point.

    View source ↗