π°Pipeline API
Basic usage and pipeline management with Bubbaloop
Bubbaloop is a Rust-based server application that orchestrates computational pipelines using the Cu29 (copper-rs) framework. It provides both an HTTP API and CLI for managing these pipelines.
Core Concepts
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 (copper-rs), which provides a task-based computation model with message passing between components.
RON Configuration: Pipelines are defined in RON (Rusty Object Notation) files that specify:
Tasks: Individual processing components with unique IDs and configurations
Connections: Message flows between tasks with specific message types
Architecture
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
Pipeline Types
bubbaloopβ Our hello-world simple demo pipelinecamerasβ Captures and records video streams form single or multiple camerainferenceβ Processes video streams for inference using computer vision models
Available API
POST /api/v0/pipeline/startStart a pipeline with specified IDPOST /api/v0/pipeline/stopStop a running pipelineGET /api/v0/pipeline/listList all available pipelines with their statuses
Usage
Start pipeline
Create and register a pipeline given its name. This will spawn a background task.
Stop pipeline
To stop the pipeline, use the stop-pipeline command:
List pipelines
To list all the registered pipelines and their status, use the list-pipeline command:
Last updated