https://perspective.finos.org/ Skip to main content PerspectivePerspective DocsExamplesBlogGitHub --------------------------------------------------------------------- What is Perspective? Perspective is an interactive analytics and data visualization component, which is especially well-suited for large and/or streaming datasets. Use it to create user-configurable reports, dashboards, notebooks and applications, then deploy stand-alone in the browser, or in concert with Python and/or Jupyterlab. Features A fast, memory efficient streaming query engine, written in C++ and compiled for both WebAssembly and Python, with read/write/streaming for Apache Arrow, and a high-performance columnar expression language based on ExprTK. A framework-agnostic User Interface packaged as a Custom Element, powered either in-browser via WebAssembly or virtually via WebSocket server (Python/Node). A JupyterLab widget and Python client library, for interactive data analysis in a notebook, as well as scalable production Voila applications. --------------------------------------------------------------------- JavaScript Interactive dashboards built on Perspective.js Custom Elements are easy to integrate into any web application framework. Using Perspective's simple query language, elements like can be symmetrically configured via API or User interaction. Web Applications built with Perspective Custom Elements can be re-hydrated from their serialized state, driven from external Events, or persisted to any store. Workspaces can mix virtual, server-side Python data with in-browser client data seamlessly, and independent data Views can be cross-filtered, duplicated, exported, stacked and saved. To achieve Desktop-like performance in the Browser, Perspective.js relies on WebAssembly for excellent query calculation time, and Apache Arrow for its conservative memory footprint and efficient data serialization. --------------------------------------------------------------------- Python `perspective-python`, built on the same C++ data engine used by the WebAssembly version, implements the Perspective API directly in Python, either as a virtualized server for Production, or as an embedded JupyterLab Widget for Research. For Application Developers, virtualized will only consume the data necessary to render the current screen, enabling ludicrous size datasets with nearly instant load. Or - stream the entire dataset to the WebAssembly runtime via efficiently via Apache Arrow, and give your server a break! For Researchers and Data Scientists, PerspectiveWidget is available as a Jupyter/JupyterLab widget, allowing interactive Pandas and Apache Arrow visualization within a notebook. --------------------------------------------------------------------- --------------------------------------------------------------------- Docs * JavaScript User Guide * Python User Guide More * GitHub * FINOS * Blog Copyright (c) 2023 The Perspective Authors