facett-icebergview — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: Browse and time-travel one Iceberg table from Arrow frames — a snapshot picker over a virtualized, paged row grid.
- Does:
IcebergViewrenders a newest-first snapshot picker (SnapshotMeta: id / timestamp_ms / rows) over a pagedfacett_table::Tablebuilt from each snapshot's ArrowVec<RecordBatch>(viafacett_arrow).Snapshotpairs metadata with its frame; selecting a snapshot loads that frame (time travel). Engine-agnostic — the host hands per-snapshot metadata + materialized frames; the catalog/engine adapter (skade) lives host-side. AFacetwithstate_json(table,snapshots,current,total_rows/page/page_size/visible_rows); driveselect_snapshot/set_pageheadlessly. - Key deps:
facett-core(Facet, clip, theme),facett-table(Table),facett-arrow(batch→rows),arrow-array,egui,serde_json. - Shape: lib; tiny (single lib.rs).
- Observed role in the workspace: Re-exported by umbrella
facettasfacett::icebergview. Adds the Iceberg history/scrub dimension that plainfacett-table(one frame) lacks; filled by korp/nornir hosts.
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: