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.1.tar.gz (1.8 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.1-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.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (961.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pathway_viz-0.3.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (961.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

pathway_viz-0.3.1-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.1-cp311-abi3-win_amd64.whl (699.8 kB view details)

Uploaded CPython 3.11+Windows x86-64

pathway_viz-0.3.1-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.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (965.3 kB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ ARM64

pathway_viz-0.3.1-cp311-abi3-macosx_11_0_arm64.whl (862.2 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

pathway_viz-0.3.1-cp311-abi3-macosx_10_12_x86_64.whl (874.6 kB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: pathway_viz-0.3.1.tar.gz
  • Upload date:
  • Size: 1.8 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.1.tar.gz
Algorithm Hash digest
SHA256 84567267aa571cd6149352dd13b0eed5a51a5911f5408f7a9b13507823faefb3
MD5 a55fb1948ff588b9c08d57f59a081f43
BLAKE2b-256 53b7170bd60c620fa896e337528d14d19cd78fee2c4d5bab17d86daa93715060

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1.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.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 27d3538bde41afe378248284c9f27c07ed1cb65c224cffa137e7bac28125e77c
MD5 f84b8fdc7118ce3cc883a195d0ba49f1
BLAKE2b-256 8fd10517762c34954c78f079f95d00587dabe964d1988cb2a6ad8ad852fecbfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 62b993ca557b91e5c53121e42f59fb282fc2b534a5109ee25c05783a49200780
MD5 819099eb19f959b5c666475f643aabf2
BLAKE2b-256 59ea2ca6210cf4569ba0a052f499e7a22b5a65208b364a736b9b70b548fd4a5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81150ad09a5317eb9ea412762305e6e4c651c903e44e68d9d5c3668a9a44c032
MD5 a11bab5ff96c8b9c9868307058ce5e55
BLAKE2b-256 8e0edf43e6194a25d582a58737248e9d1dfd86a01c9f7302bc20cab34c21ba9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a7cda172b5c485c7f295d01151b280d4d48cdd61de0ffe46ba79b800fa1f69ed
MD5 23053dd6e3db684e19c08b9691ae610f
BLAKE2b-256 374fbf7bb2f6073392f1aff0b9518c612e94bb579fed66ac60d1add8e3e9e39d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: pathway_viz-0.3.1-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 699.8 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.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c6c204fb15c1b4f41d27a76346bb60a0e2364fb03e219be8aaba167a6d21735d
MD5 1a5c615685586a89e806d9f95d1094d5
BLAKE2b-256 6fa63c3fda1eb407c2886428412aee1d55959e891c7554cb81ec8c17043ba415

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7873fe50608a102aacc0ac4a5ebc971aef9961bf1cf7482f19cea05d6c401f93
MD5 8c1b3a38b06dd2cf605e33b003792d50
BLAKE2b-256 a655cb4462f3dffb9247cb527ef86bea876f534e3d443b2c6df91506446b5b65

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c637e8535726df0dbc03214a6083ae053c3d231f4dca823099968940db444871
MD5 8b2ba445be6ef28f434b49216308b5f8
BLAKE2b-256 ed0f7d8d1abb56cea235c3bdd9a77ca1c19bd40fa7e0265feacacd646c099fde

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62aa8d91e792b2897dd8bebd53675c0b9ce56823e0b9af8d231cb51506e3eed8
MD5 c35e8d81c154fe47b359b7579f550144
BLAKE2b-256 5718d6f6ddbdb03947c89060e72ddad662fb51f5e6afdb674cbee575ac06d6ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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.1-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pathway_viz-0.3.1-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 04616e0aed9d98003d8c2e07050337b531b03bd5241207df10bce01979564646
MD5 83e6a59aeb6c421295eae0e47257e8ab
BLAKE2b-256 e7d0e30daa868de8908e1bba8c24117a4b31e0a3e4e600eb74ad4f103db398da

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathway_viz-0.3.1-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