facett-grid — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: The flagship facett component — an Arrow-backed data grid better-looking and smoother than a spreadsheet, virtualized on both axes.
- Does:
Grid(built from an ArrowRecordBatchviafrom_record_batch) with two-axis virtualization (only visible cells; millions of rows), frozen sticky header, pinned leading columns (pin_columns), optional totals footer (with_totals), multi-column sort (sort/SortSpec), Excel-style cell selection → TSV (selection/CellRange), type-aware cells (grouped numbers, dates, enum chips, booleans, in-cell progress bars + sparklines viadata::CellKind), conditional formatting (condfmt: data bars / colour-scale heat), inline editing (EditState, opt-inwith_editable), and full theming. AFacet: selectable · copyable · searchable · scalable · resizable · themeable · editable. - Key deps:
facett-core(Facet, clip, SmoothScroll, theme),egui,arrow-array/arrow-schema,serde_json. - Shape: lib; medium (arrow/condfmt/data/selection/sort/viewport/tests modules); ships a
grid_demoexample. Has a.nornir/facett-grid.mddesign doc. - Observed role in the workspace: Re-exported by umbrella
facettasfacett::grid; the headline data-table surface for hosts. Complementsfacett-table(the simpler string-row grid).
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: