Skip to main content

The visualization layer for Pathway - real-time dashboards for streaming data

Project description

PathwayViz

PyPI License: MIT

Embeddable real-time widgets for Pathway streaming pipelines. Rust WebSocket server with a Python API.

Demo

Overview

PathwayViz makes it easy to embed live-updating data from Kafka streams into any web page. Define widgets in Python, embed them via iframe anywhere.

import pathway as pw
import pathwayviz as pv

orders = pw.io.kafka.read(...)
revenue = orders.reduce(revenue=pw.reducers.sum(pw.this.amount))

# Create a widget server
server = pv.WidgetServer(port=3000)
server.register(pv.Stat(revenue, "revenue", id="revenue", title="Revenue", unit="$"))
server.start()
pw.run()
<iframe src="http://localhost:3000/embed/revenue"></iframe>

Install

pip install pathway-viz

Architecture

flowchart LR
    subgraph Pathway["Pathway Pipeline"]
        K[Kafka] --> P[Processing]
        P --> T[Tables]
    end

    subgraph PathwayViz
        T -->|subscribe| PY[Python API]
        PY -->|JSON| RS[Rust Server]
        RS --> RB[Ring Buffers]
        RS -->|WebSocket| B[Browser]
    end

Key components:

  • WidgetServer - Manages widget registration and serves embeddable endpoints
  • Widget Classes - Stat, Chart, Gauge, Table subscribe to Pathway tables
  • Rust WebSocket Server - Tokio async runtime handles concurrent connections without GIL contention
  • Ring Buffers - New clients receive historical data immediately without replaying the stream

Widgets

server = pv.WidgetServer(port=3000)

# Single value with delta tracking
server.register(pv.Stat(totals, "revenue", id="revenue", title="Revenue", unit="$"))

# Time series chart
server.register(pv.Chart(windowed_data, "count", id="orders_chart", x_column="window_end", title="Orders/sec"))

# Circular gauge
server.register(pv.Gauge(stats, "cpu", id="cpu_gauge", title="CPU", max_val=100, unit="%"))

# Live-updating table
server.register(pv.Table(by_region, id="regions", title="By Region", columns=["region", "revenue"]))

server.start()

Each widget is accessible at /embed/{widget_id}.

Demo

Requires Docker (spins up Redpanda for Kafka):

pip install pathway-viz[kafka]
pathway-viz demo

Generates fake e-commerce orders and displays live metrics. Includes a portal page demonstrating embedded widgets in a mock storefront.

Documentation

Roadmap

  • Core widgets (stat, chart, gauge, table)
  • Pathway table subscriptions
  • Embed mode with per-widget endpoints
  • Ring buffer history for late-joining clients
  • Additional chart types
  • Crash recovery

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pathway_viz-0.3.0.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pathway_viz-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (960.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pathway_viz-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (960.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pathway_viz-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (960.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pathway_viz-0.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (963.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pathway_viz-0.3.0-cp311-abi3-win_amd64.whl (700.1 kB view details)

Uploaded CPython 3.11+Windows x86-64

pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (970.0 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64

pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (964.8 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64

pathway_viz-0.3.0-cp311-abi3-macosx_11_0_arm64.whl (862.0 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

pathway_viz-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl (874.3 kB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

Details for the file pathway_viz-0.3.0.tar.gz.

File metadata

  • Download URL: pathway_viz-0.3.0.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pathway_viz-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ae3f9b7bceb1e86ddd9a22dcb3011b99b1569910c6b182a22c51aa5e926e1fdb
MD5 a7002828aedb83a4cee83c382bc4e73e
BLAKE2b-256 46cacd9218cd43ea4f31b99f402f344bcde2700b6ef1aed1b4154e7d89440084

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0.tar.gz:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7b33d99cb5fe30965a2d4ef48ddcc33ff2a2db4c4325ea469b9a48d291c83998
MD5 3fe92d2e332479082830cabcff8e0dba
BLAKE2b-256 b4e95184ae5616a0516b29f8ca24b75070a91ab95bdbf2265a842f3a8fc30159

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 446db08787f3f224be0ac7a8b497b8ef94d6daa460d6dff3b7766c0f6ec2a174
MD5 5b000ee8347978b87ae0c3a456f1e2f6
BLAKE2b-256 101ff2c47d508e03765850cfce68178361d2dc2887d43e1285c2a46492ac4103

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74ab9cea22d6ce208550ba102525886fed2189ed394d34ac9458ccd123bc8312
MD5 84a73df09ef7bb83685d4632d97a2411
BLAKE2b-256 637f8cc86124f6bd95d0f10b6968df899e27ae7266206172344b70e160f03da7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 916542a4084c9cc92b0903b0c83168bef44f46a2d260db7454d674c26cbd84d2
MD5 8d18e699ae2674992ae7cceef43bf312
BLAKE2b-256 a337360e96741d8e2d86168daa1776f92edf74f31ade05af0011e2770765e50a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: pathway_viz-0.3.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 700.1 kB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pathway_viz-0.3.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9df16029261e838a8a20e897c1aaac13a620f1342c928beedf47268e95f309e7
MD5 1107aa8ca6a01e3d37d56249c18fcd5e
BLAKE2b-256 b4eaf6f3e177a1c3206ebcce44898972c205c1e14094a50d453de5f02da7b4d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-cp311-abi3-win_amd64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85449671cf4d5e208cadae2baa78c4d9485d2600ec18867d18519a8e8dd43221
MD5 2a67f985771ce12d597a420eed407573
BLAKE2b-256 0293f565d05c907db40af11f435764a18beb1cb4cbaa340a9563e7940abaf920

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89724b11bb54750befd09ed07756e0434d156bc2ef9c8ca8e6c7ceecfeb390b8
MD5 0d280d3767e16ce4cfba403c0206a69f
BLAKE2b-256 6bfd8339aa85cf3d64fe0cd2d6251adc3f3814026c678dd3fec1155c2da6069c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17dba75de9178598b2528c50e9605d36eb205fbc30607a65ca0938eaa033855d
MD5 a09d2d57e0fb86756d5ff4e7f53e667e
BLAKE2b-256 651adbed747e908bad707ad37d4095833a3eb13a4116e947df361dbf2cf8524b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathway_viz-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c687ba81793669facbeb29f17755104d1aa95fbeedbab524e345def76251d79b
MD5 ff6e9c6c776101db20ae55c6fc422465
BLAKE2b-256 d790644e9f5a2b5e8c12bd65a004eb7148fa2f97612d94bf5b48589016599dfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on mvfolino68/pathway-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page