Data and databases · Edition No. 12 · 6 Sep 2026

perspective-dev/perspective

A browser component for exploring and charting very large or continuously updating tables.

← Data and databasesRead the whole edition →
Perspective: explore a very large table. Slices hundreds of thousands of rows at speed.

11.2k stars · Apache-2.0 · v5.3.1 (2026-09-04) · Track this in Rising ↗

WebAssembly data grid and charts for large or streaming datasets — pivot two hundred thousand trades in the browser.

Verified27 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 25 Oct 2026, 2 days before this check.

Releases100

Latest release v5.6.1 on 23 Oct 2026.

Maturity100

Public since November 2017, a little over 8 years.

Adoption81

11,356 stars and 1,353 forks.

Activity85

128 commits and 20 new issues in the last 90 days.

Community100

104 contributors. 31 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. No published security advisories.

Licence Apache-2.0: permissive: use it for anything, keep the noticeSetup effort 3 of 5Payoff 4 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 12.

▶Repo detailsthe review · specs · pros & cons · install

What it does

Perspective is a data-visualisation and analytics component compiled to WebAssembly, which is a format that lets compiled code run at near-native speed in a browser. It holds the data in its own in-browser engine, so grouping, pivoting, filtering and charting happen locally with no request to a server for each change. It handles streaming updates, meaning new rows can arrive continuously without the view being rebuilt. There is a matching Python package, and a table and chart configuration saved in a notebook can be loaded unchanged into a web page. The current release is v5.6.0, from 14 October 2026, with perspective-python at 5.5.1 on PyPI from 18 September 2026, under the Apache-2.0 licence. It is a tool for interrogating data rather than presenting it: the configuration interface is dense, and it is not what you would put in front of a customer.

Why it matters

Who it suits. Anyone with a result set too large for a spreadsheet and too interactive for a static chart, who currently exports it and opens it somewhere else. Pivoting a hundred thousand rows by hour, by category and by day of week is the kind of question it answers in a moment. Skip it for a landing page or a customer-facing chart, where it is both too heavy and too complicated.

Verdict. Worth a weekend if there is genuinely a lot of data to look at, and overkill otherwise. Two things to plan for. The WebAssembly bundle is large, so load it only on the page that needs it and never on a first-visit page. And its configuration model is a world of its own, with documentation that assumes familiarity with finance-desk tooling. The Apache-2.0 licence means the same grid can later sit inside a paid feature. For a lighter editable grid, glideapps/glide-data-grid is the smaller option, and ag-grid/ag-grid is the commercial-grade alternative with a split licence.

Stars11.2k
LicenceApache-2.0
Latestv5.3.1 (2026-09-04)checked 7 Sep 2026
Written inRust
NeedsPostgreSQL and ClickHouse
Summary (Key Points)from the README
Key features
  • Data grid and charts: A virtual-scrolling, editable data grid, a WebGL charting engine with 15+ chart types, and tile-based geographic maps, all packaged as a Custom Element.
  • Drag-and-drop configuration: Query and layout are set up by dragging and dropping, and the UI reacts to the data.
  • Streaming query engine: A C++ engine compiled to WebAssembly, with Python and Rust versions, that updates tables incrementally and ticks views in real time.
  • Large in-browser datasets: A 64-bit memory64 build handles in-browser datasets larger than 4GB, and columns can be paged to disk via OPFS in the browser or memory-mapped natively.
  • Data handling: Reactive joins across tables, a columnar expression language based on ExprTK, and read, write and streaming support for Apache Arrow, CSV and JSON.
  • Flexible client/server model: The same Client API runs in-process, in a Web Worker, or remotely over WebSocket, with server bindings for Python (aiohttp, Starlette, Tornado), Node.js and Rust.
  • Mirrored or virtualized data: Datasets can be mirrored to the browser for fast interaction or kept server-side, streaming only what is visible.
  • Virtual servers: Perspective's UI runs directly on DuckDB, ClickHouse, PostgreSQL and Polars, translating view configurations into native queries with no ETL or data copy.
  • Notebook support: A Jupyter widget built on anywidget and a Python client library for interactive analysis in JupyterLab and other notebooks.
Important
  • No install steps: The README gives no installation commands, system requirements or supported versions, so setup must be taken from the linked documentation.
  • Virtual servers need an existing database: The virtual server mode works only with the engines it names (DuckDB, ClickHouse, PostgreSQL, Polars), and it depends on those systems already holding the data.
  • Browser memory limits: Datasets above 4GB in the browser need the memory64 build, and the README does not say which browsers or configurations support it.
  • Licensing not stated: The README describes the project as open source but does not name a license in the text provided.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
3 / 5
Payoff
4 / 5
Good
  • Genuinely fast on hundreds of thousands of rows, in a browser, with no request per pivot.
  • One configuration works in a Python notebook and in a web application.
  • Apache-2.0, so it is safe inside a paid feature without a licence conversation.
Watch for
  • The WebAssembly bundle is large and must be loaded lazily.
  • The configuration model takes real learning, and the documentation assumes finance-desk familiarity.
  • It is for interrogation, not presentation, so a polished customer-facing chart still needs a different library.
Works well with

Python side feeds it from the same DataFrames DuckDB (Ed.

Install
python3 -m venv ~/perspective-env
source ~/perspective-env/bin/activate
pip install perspective-python
Screenshots
perspective-dev/perspective: GitHub preview cardperspective-dev/perspective: Screenshot 1perspective-dev/perspective: Screenshot 2perspective-dev/perspective: Screenshot 3perspective-dev/perspective: Screenshot 4

On Stack Radar: Data & Research › Analytics & Business Intelligence › Dashboards.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.