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 — это интерактивный компонент для визуализации и аналитики данных, созданный для больших наборов данных, в том числе в реальном времени и потоковых. Он поставляется как UI-компонент Custom Element (таблица, графики, сводные таблицы), который работает поверх движка потоковых запросов. Этот движок запускается в браузере через WebAssembly или на сервере в Python, Node.js и Rust.
Это просто UI-виджет или весь бэкенд аналитики?И то, и другое: это Custom Element/Web Component UI (с React-привязками) плюс сам движок запросов, написанный на C++ и скомпилированный в WebAssembly, Python и Rust. Благодаря этому один и тот же движок может работать как на клиенте, так и на сервере.
Как добавить это в веб-приложение или ноутбук?Подключите веб-компонент @perspective-dev/viewer (или React-привязки) и свяжите его с Client, который работает в том же процессе, в Web Worker или подключается по WebSocket к серверу. Для ноутбуков установите Python-пакет и используйте виджет Jupyter, построенный на anywidget.
Нужен ли Python или достаточно Node для версии для браузера?Для чисто клиентского использования достаточно JS/WASM-пакета в браузере. Для работы на сервере добавляются привязки для Python (aiohttp, Starlette, Tornado), Node.js или Rust. Для сборки из исходников нужны pnpm, binaryen, emsdk и LLVM.
Может ли он работать с наборами данных, которые больше лимита памяти WASM в браузере?Да: есть отдельная 64-битная сборка WebAssembly с memory64, предназначенная именно для наборов данных в браузере больше 4 ГБ. Большие наборы также можно виртуализировать на сервере, чтобы клиенту передавались только видимые строки.
Может ли 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