Perspective is an interactive analytics and data visualization component for large, real-time and streaming datasets. Build user-configurable reports, dashboards, notebooks and applications, backed by a high-performance streaming query engine that runs in-browser via WebAssembly or server-side in Python, Node.js and Rust — or delegates to a database you already have.
Features
A data-reactive UI packaged as a Custom Element, with drag-and-drop query and layout configuration. Includes a virtual-scrolling, editable data grid, WebGL charting engine with 15+ chart types, tile-based geographic maps, full theme support, and React bindings.
A fast, memory-efficient streaming query engine written in C++ and compiled for WebAssembly (including a 64-bit
memory64build for in-browser datasets larger than 4GB), Python and Rust. Tables update incrementally and views tick in real time, with reactive joins across tables, a columnar expression language based on ExprTK, and read/write/streaming support for Apache Arrow, CSV and JSON.A symmetric client/server architecture — the same Client API connects to an engine in-process, in a Web Worker, or remotely over WebSocket, with server bindings for Python (aiohttp, Starlette, Tornado), Node.js and Rust. Datasets can be mirrored to the browser for fluid interaction or virtualized server-side, streaming only what's visible.
Virtual servers that run Perspective's UI directly on external engines like DuckDB, ClickHouse, PostgreSQL and Polars, translating view configurations into native queries — no ETL or data copy required.
A Jupyter widget built on anywidget and a Python client library for interactive data analysis in JupyterLab and other notebook environments.
Documentation
- Project Site
- User Guide
- JavaScript API
- Python API
- Rust API
Examples
Media
@timkpaine |
@timbess |
@sc1f |
![]() |
![]() |
Frequently asked questionsIs perspective free to use?perspective is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead. What does perspective do?A data visualization and analytics component, especially well-suited for large and/or streaming datasets. What is perspective written in?perspective is primarily written in Rust. Its source is publicly available at https://github.com/perspective-dev/perspective, and it has 11,222 GitHub stars. |










