perspective README

The project's README from github.com/perspective-dev/perspective. As one markdown file: README.md.




Build Status npm PyPI crates.io

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

Documentation

Examples

SuperstoreWorkspaceWebcam
RaycastingMarketNYPD
MoviesEvictionsFractal

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

perspective (perspective-dev/perspective)

Searching Database…

这是什么?Perspective 是一个交互式数据可视化与分析组件,专为大型、实时和流式数据集打造。它以 Custom Element 形式提供用户界面(表格、图表、透视表),背后由流式查询引擎驱动。该引擎既可以通过 WebAssembly 在浏览器中运行,也可以通过 Python、Node.js 或 Rust 在服务端运行。
它是界面组件,还是整个分析后端?两者兼有:它既是 Custom Element/Web Component 用户界面(并提供 React 绑定),也包含查询引擎本身。该引擎用 C++ 编写,编译为 WebAssembly、Python 和 Rust 版本,因此同一个引擎既可以在客户端运行,也可以在服务端运行。
我该怎么把它加到网页应用或 notebook 里?引入 @perspective-dev/viewer Web 组件(或 React 绑定),并将其连接到一个 Client。该 Client 可以在进程内运行、在 Web Worker 中运行,也可以通过 WebSocket 连接到服务器。对于 notebook,请安装 Python 包,并使用基于 anywidget 构建的 Jupyter 小组件。
浏览器版本需要 Python,还是只用 Node 就够了?仅在客户端使用时,只需要浏览器中的 JS/WASM 包。服务端使用则需要增加 Python(aiohttp、Starlette、Tornado)、Node.js 或 Rust 的绑定;若从源码构建,则需要 pnpm、binaryen、emsdk 和 LLVM。
它能处理超出浏览器 WASM 内存上限的数据集吗?可以——它有专门的 64 位 memory64 WebAssembly 构建版本,用于处理超过 4GB 的浏览器端数据集。此外,大型数据集还可以在服务端虚拟化,使得只有可见行被流式传输到客户端。
我能让 Perspective 直接查询数据库,而无需先把数据导入它吗?可以。“虚拟服务器”让 Perspective 的界面直接运行在 DuckDB、ClickHouse、PostgreSQL 和 Polars 等外部引擎之上,将视图配置转换为原生查询,无需 ETL 或复制数据。
它支持哪些图表类型和可视化效果?它包含一个基于 WebGL 的图表引擎,支持 15 种以上图表类型,还有支持虚拟滚动的可编辑数据表格、基于瓦片的地理地图、透视表,以及完整的主题支持。
客户端能否连接远程引擎,而不是所有运算都在本地进行?可以。同一套 Client API 既可以在进程内连接,也可以在 Web Worker 中连接,或通过 WebSocket 远程连接到服务端引擎;数据集可以镜像到浏览器,也可以在服务端虚拟化。
它支持流式更新,还是只能处理静态数据集?表格会增量更新,视图实时刷新,并支持跨表的响应式连接(join),同时支持 Apache Arrow、CSV 和 JSON 的流式读写。
Size
326.9 MB
Stars
11.3K
Age
8y
Commits · 90 Days