README perspective-dev/perspective
Perspective is an interactive analytics and data visualization component for
large and streaming datasets. Build user-configurable reports, dashboards,
notebooks, and applications with a high-performance query engine compiled to
WebAssembly, Python, and Rust.
Features
-
A framework-agnostic user interface packaged as a
Custom Element,
which connects to a Data Model in-browser (via WebAssembly) or remotely (via
WebSocket, with integration in Python, Node.js and Rust). Includes a data
grid, 10+ chart types line, bar, area, scatter, heatmap, treemap, sunburst,
candlestick, and more. -
A Data Model API for pluggable engines, enabling Perspective's UI to query
external data sources like DuckDB while translating
view configurations into native queries. -
A fast, memory-efficient streaming Data Model built-in, written in C++ and
compiled for WebAssembly,
Python, and Rust.
Supports read/write/streaming for Apache Arrow,
with a columnar expression language based on
ExprTK. -
A JupyterLab widget and Python client library for
interactive data analysis in notebooks.
Documentation
- Project Site
- User Guide
- JavaScript API
- Python API
- Rust API
Examples
| editable | file | duckdb |
![]() | ![]() | ![]() |
| fractal | market | raycasting |
![]() | ![]() | ![]() |
| evictions | nypd | streaming |
![]() | ![]() | ![]() |
| covid | webcam | movies |
![]() | ![]() | ![]() |
| superstore | olympics | dataset |
![]() | ![]() | ![]() |
Media
@timkpaine |
@timbess |
@sc1f |
![]() |
![]() |
![]() |
@texodus |
@texodus |
|
![]() |
![]() |
The Perspective project is a member of the
The OpenJS Foundation.
Copyright OpenJS Foundation and Perspective contributors.
All rights reserved. The OpenJS Foundation has registered
trademarks and uses trademarks. For a list of trademarks of the
OpenJS Foundation, please see our
Trademark Policy and
Trademark List. Trademarks and logos not
indicated on the
list of OpenJS Foundation trademarks are
trademarks™ or registered® trademarks of their respective holders. Use of them
does not imply any affiliation with or endorsement by them.
The OpenJS Foundation |
Terms of Use |
Privacy Policy |
Bylaws |
Code of Conduct |
Trademark Policy |
Trademark List |
Cookie Policy



















