Skip to main content

shmpipeline

Links

What It Is

shmpipeline builds local, process-based compute pipelines on top of named shared-memory streams from pyshmem.

It is a good fit when you want explicit dataflow, process isolation, and shared-memory throughput without giving up a small Python API, YAML-driven configuration, or interactive tooling.

Typical uses include:

  • adaptive optics and other real-time sensor / control pipelines
  • CPU or GPU processing graphs around shared-memory streams
  • validating, inspecting, and running pipelines from Python or the CLI
  • editing and supervising pipelines from a desktop GUI
  • extending the runtime with custom kernels, sources, and sinks

Good starting points:

Installation

Full docs: Installation guide

Choose the smallest install that matches your workflow:

  • Base runtime and CLI: pip install shmpipeline
  • GPU support: pip install "shmpipeline[gpu]"
  • Desktop GUI: pip install "shmpipeline[gui]"
  • Remote control service: pip install "shmpipeline[control]"
  • Editable source install: pip install -e .
  • Full local development environment: pip install -e ".[control,gpu,gui,test,docs]"

Quick smoke test against a checked-in example:

shmpipeline validate examples/affine_transformation/pipeline.yaml
shmpipeline describe examples/affine_transformation/pipeline.yaml --json

Open The GUI For The Observatory AO Example

Relevant docs:

From the repository root:

pip install "shmpipeline[gui]"
shmpipeline-gui examples/observatory_ao_system/pipeline.yaml

The full GUI can auto-launch a local loopback control server when you press Build or Start.

If you want to launch the server yourself first:

shmpipeline serve examples/observatory_ao_system/pipeline.yaml --host 127.0.0.1 --port 8765
shmpipeline-gui examples/observatory_ao_system/pipeline.yaml

Quickstart For The Python API

Full docs:

Minimal pipeline config:

shared_memory:
  - name: input_frame
    shape: [4]
    dtype: float32
    storage: cpu

  - name: scaled_frame
    shape: [4]
    dtype: float32
    storage: cpu

kernels:
  - name: scale_stage
    kind: cpu.scale
    input: input_frame
    output: scaled_frame
    parameters:
      factor: 2.0

Run it from Python:

import numpy as np

from shmpipeline import PipelineConfig, PipelineManager

config = PipelineConfig.from_yaml("pipeline.yaml")
manager = PipelineManager(config)
manager.build()
manager.start()

manager.get_stream("input_frame").write(np.array([1, 2, 3, 4], dtype=np.float32))
result = manager.get_stream("scaled_frame").read_new(timeout=2.0)
print(result)

manager.stop()
manager.shutdown()

If you prefer the CLI for the same pipeline:

shmpipeline validate pipeline.yaml
shmpipeline describe pipeline.yaml
shmpipeline run pipeline.yaml --duration 5.0

Popular Example Pages

More Documentation

Start with these in roughly the order most users need them:

  1. Configuration guide for the full YAML model, parameters, and shared-memory definitions.
  2. Worked examples for complete CPU, GPU, custom-operation, AO, and plugin-backed pipelines.
  3. CLI guide for validate, describe, run, and serve.
  4. GUI guide for editing configs, validating locally, inspecting graphs, and launching viewers.
  5. Runtime guide for lifecycle, metrics, worker health, and synthetic inputs.
  6. Extensions guide for custom kernels, sources, and sinks.
  7. Control plane guide for remote management, SSE events, and the Python client.
  8. API reference, core API, and kernel catalog for the detailed reference surface.
  9. Troubleshooting for common setup and runtime issues.

Download files

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

Source Distribution

shmpipeline-1.0.3.tar.gz (143.5 kB view details)

Uploaded Source

Built Distribution

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

shmpipeline-1.0.3-py3-none-any.whl (139.6 kB view details)

Uploaded Python 3

File details

Details for the file shmpipeline-1.0.3.tar.gz.

File metadata

  • Download URL: shmpipeline-1.0.3.tar.gz
  • Upload date:
  • Size: 143.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shmpipeline-1.0.3.tar.gz
Algorithm Hash digest
SHA256 775c08aca652422728b340504b7c72bab3172cf35e63c597f8f417a9c6a56189
MD5 ec94d57124cb3d534d1f554bb5898fc7
BLAKE2b-256 85e35e5e1e820c86dc55774a05bf2af40581cbedcf9382f784ab017426d65515

See more details on using hashes here.

Provenance

The following attestation bundles were made for shmpipeline-1.0.3.tar.gz:

Publisher: pypi.yml on jacotay7/shmpipeline

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

File details

Details for the file shmpipeline-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: shmpipeline-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 139.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shmpipeline-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bab89659bb223247f219e37a96550d7817665efb270ac66e08a20899243cbc2b
MD5 462a82350314a590d24fc94e37814c03
BLAKE2b-256 cfee7a463b58df85bd8af2a23d01d58e2cb49c2322214c268592e3312c3d197c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shmpipeline-1.0.3-py3-none-any.whl:

Publisher: pypi.yml on jacotay7/shmpipeline

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 Sentry Error logging StatusPage Status page