Pipeline API
Basic usage and pipeline management with Bubbaloop
Last updated
Basic usage and pipeline management with Bubbaloop
Last updated
Bubbaloop is a Rust-based server application that orchestrates computational pipelines using the Cu29 () framework. It provides both an HTTP API and CLI for managing these pipelines.
Pipeline Management: The system dynamically manages multiple pipeline types (bubbaloop, inference, recording, streaming) that process data through connected tasks.
Cu29/Copper Framework: Pipelines are built using the Cu29 framework (), which provides a task-based computation model with message passing between components.
RON Configuration: Pipelines are defined in (Rusty Object Notation) files that specify:
Tasks: Individual processing components with unique IDs and configurations
Connections: Message flows between tasks with specific message types
API Server: An Axum-based HTTP server that exposes endpoints for pipeline management
Pipeline Store: Central registry tracking all running pipelines with their statuses
Result Store: Maintains processing results and enables streaming of data between components
bubbaloop
— Our hello-world simple demo pipeline
inference
— Processes video streams for inference using computer vision models
recording
— Captures and records video streams form single or multiple camera
streaming
— Distributes video streams to clients
custom
— (SOON) to implement custom pipelines
POST /api/v0/pipeline/start
Start a pipeline with specified ID
POST /api/v0/pipeline/stop
Stop a running pipeline
GET /api/v0/pipeline/list
List all available pipelines with their statuses
Create and register a pipeline given its name. This will spawn a background task.
To stop the pipeline, use the stop-pipeline
command:
To list all the registered pipelines and their status, use the list-pipeline
command: