Glossary
Short definitions of the terms used throughout this guide.
Data grid
A scrollable, sortable table of rows and columns rendered in a user interface. Perspective’s data grid, the Datagrid plugin, is virtualized: it renders only the visible cells, so its cost is independent of the number of rows.
Pivot table
A table which groups rows by one or more columns (row pivots), optionally
splits them across the distinct values of other columns (column pivots), and
shows an aggregate in each cell. In Perspective, row pivots are group_by and
column pivots are split_by. See
Grouping and Pivots.
Streaming pivot table
A pivot table whose groups and aggregates are updated incrementally as rows are inserted, updated or removed, rather than recomputed. See Streaming pivot tables.
Table
Perspective’s columnar, typed data store. A Table
is created from a schema or a dataset (Apache Arrow, CSV, JSON, or a DataFrame
in Python), and modified with update(), remove(), clear() and
replace().
View
A continuous query over a Table: a combination of group_by, split_by,
columns, aggregates, filter, sort and expressions. A
View stays current as its Table changes and
notifies on_update subscribers.
group_by
The columns whose distinct values become the rows of a pivot. Multiple levels form an expandable tree with subtotals.
split_by
The columns whose distinct values become the column headers of a pivot.
Aggregate
The function which reduces a group’s values to one cell — sum, avg,
count, distinct count, median, weighted mean, first, last and
others. Chosen per column.
Expression column
A computed column defined in Perspective’s expression language, based on ExprTK. Expressions are evaluated column-wise inside the engine and can be grouped, filtered, sorted and aggregated like stored columns.
Index
A Table option naming a primary key column. Updates to an indexed table
replace the row with the matching key (and may be partial); without an index,
updates append. See index and limit.
Limit
A Table option which keeps only the most recent n rows, for rolling
windows over unbounded streams.
page_to_disk
A Table option which backs the table’s columns with on-disk storage — the
Origin Private File System in the browser, memory-mapped files natively — so
a Table can exceed the engine’s memory. See
page_to_disk.
<perspective-viewer>
The Web Component (Custom Element) providing Perspective’s user interface: configuration panel, plugins, themes, multi-panel layout and save/restore.
Plugin
A visualization hosted by <perspective-viewer> — the Datagrid, or one of
the WebGL charts (bar, line, area, scatter, heatmap, treemap, sunburst,
candlestick, OHLC, maps).
Panel
One view inside a <perspective-viewer>: a plugin showing one View of one
Table, with its own configuration and title. A viewer holds one or more
panels, arranged by its layout.
Workspace
The whole state of a multi-panel <perspective-viewer> — every panel, the
layout, derived tables, master/detail roles and the palette — as saved by
saveWorkspace() and applied by restoreWorkspace(). See
Saving and restoring UI state.
Layout
The arrangement of a viewer’s panels into a dashboard grid: nested
split-layout rows and columns whose cells are tab-layout stacks of panels.
See Arranging panels.
Master/detail
Linked panels: selecting a row in a master panel cross-filters every
detail panel through the viewer’s global_filters. See
Master/detail cross-filtering.
Derived table
A Table built from a View of another table — a pivoted, filtered or
aggregated copy that panels can bind by name and that stays current as its
source changes. See Derived Tables.
Palette
Named colors, palettes and gradients shared by every panel of a workspace, as
--psp-user--* CSS custom properties referenced from column styles. See
Colors, palettes and gradients.
Client, Server
A Server owns tables and executes queries. A Client is a handle to a
Server, whether that server is in the same process, in a Web Worker, or
across a WebSocket. The API is the same in every case.
Client-only mode
The engine runs in the browser as WebAssembly in a Web Worker; no server is involved. See Client-only.
Client/server replicated mode
A server owns the authoritative Table; each browser keeps a synchronized
copy and queries it locally. See
Client/Server replicated.
Server-only mode
Queries run on the server and the browser receives only the rows it is displaying. See Server only.
Virtual server
An implementation of Perspective’s protocol over an external query engine, such as DuckDB, ClickHouse, PostgreSQL or Polars, which translates view configurations into that engine’s native queries. See Virtual Servers.
Virtual scrolling
Rendering only the rows and columns currently in the viewport, and fetching more as the user scrolls.
Apache Arrow
A language-independent columnar memory format. It is Perspective’s preferred interchange format: it loads without parsing and preserves types.
WebAssembly
A portable binary instruction format which runs at near-native speed in browsers. Perspective’s C++ query engine and Rust UI are both compiled to WebAssembly.
Memory64
A WebAssembly extension for 64-bit memory addressing. Perspective ships an optional Memory64 engine build which raises the in-browser heap limit from 4GB to 16GB.