Accessing the Perspective engine via a Client instance

An instance of a Client is needed to talk to a Perspective Server, of which there are a few varieties available in JavaScript.

Web Worker (Browser)

Perspective's Web Worker client is actually a Client and Server rolled into one. Instantiating this Client will also create a dedicated Perspective Server in a Web Worker process.

To use it, you'll need to instantiate a Web Worker perspective engine via the worker() method. This will create a new Web Worker (browser) and load the WebAssembly binary. All calculation and data accumulation will occur in this separate process.

const client = await perspective.worker();

The worker symbol will expose the full perspective API for one managed Web Worker process. You are free to create as many as your browser supports, but be sure to keep track of the worker instances themselves, as you'll need them to interact with your data in each instance.

Websocket (Browser)

Alternatively, with a Perspective server running in Node.js, Python or Rust, you can create a virtual Client via the websocket() method.

const client = perspective.websocket("http://localhost:8080/");

Node.js

The Node.js runtime for the @finos/perspective module runs in-process by default and does not implement a child_process interface, so no need to call the .worker() factory function. Instead, the perspective library exports the functions directly and run synchronously in the main process.

const client = require("@finos/perspective");