perspective-server 3.0.0-rc.6

A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
Documentation

This crate contains the server/engine components of the Perspective data visualization suite. It is meant to be used in conjunction with the other crates of this project, e.g. perspective-client to create client connections to a server.

The [perspective] crate provides a convenient frontend for Rust developers, including both [perspective_client] and [perspective_server] as well as other convenient integration helpers.

Architecture

The basic dataflow of a Perspective applications looks something like this:

: Network or sync boundary
:
Client 1            :   Session 1                      Server
┏━━━━━━━━━━━━━━━━━━┓ :  ┏━━━━━━━━━━━━━━━━━━┓           ┏━━━━━━━━━━━━━━━━━━┓
┃ handle_response  ┃<━━━┃ send_response    ┃<━┳━━━━━━━━┃ send_response    ┃
┃ send_request     ┃━┳━>┃ handle_request   ┃━━━━━┳━━━━>┃ handle_request   ┃
┗━━━━━━━━━━━━━━━━━━┛ ┗━>┃ poll             ┃━━━━━━━━┳━>┃ poll             ┃
:  ┃ session_id       ┃  ┃  ┃  ┃  ┃ generate_id      ┃
:  ┗━━━━━━━━━━━━━━━━━━┛  ┃  ┃  ┃  ┃ cleanup_id       ┃
:                        ┃  ┃  ┃  ┗━━━━━━━━━━━━━━━━━━┛
Client 2            :   Session 2            ┃  ┃  ┃
┏━━━━━━━━━━━━━━━━━━┓ :  ┏━━━━━━━━━━━━━━━━━━┓  ┃  ┃  ┃  
┃ handle_response  ┃<━━━┃ send_response    ┃<━┛  ┃  ┃                         
┃ send_request     ┃━┳━>┃ handle_request   ┃━━━━━┛  ┃                                        
┗━━━━━━━━━━━━━━━━━━┛ ┗━>┃ poll             ┃━━━━━━━━┛
:  ┃ session_id       ┃                                                 
:  ┗━━━━━━━━━━━━━━━━━━┛

Feature Flags

The following feature flags are available to enable in your Cargo.toml:

  • external-cpp Set this flag to configure this crate's compile process to look for Perspective C++ source code in the environment rather than locally, e.g. for when you build this crate in-place in the Perspective repo source tree.