Apache StreamPipes - A self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams.

Clone this repo:
  1. 2d1d3d8 feat(#4544): Create a simple event publisher that broadcasts changes of a data stream (#4546) by Sven Oehler · 15 hours ago dev
  2. 61cea90 fix(#4497): Prevent duplicate dataset assignment to assets (#4538) by Sven Oehler · 17 hours ago
  3. e9c88fd fix(#4539): Use correct elementId for deeply cloned widgets (#4540) by Dominik Riemer · 33 hours ago
  4. 2763814 fix: Use prometheus collector bridge (#4536) by Dominik Riemer · 3 days ago
  5. 8160f91 chore(deps): bump tmp from 0.2.5 to 0.2.7 in /ui (#4510) by dependabot[bot] · 3 days ago

Github Actions Docker pulls Maven central License Last commit Apache StreamPipes Contributors GitHub commit activity GitHub issues by-label Documentation
LinkedIn X D

Overview

Apache StreamPipes is an end-to-end industrial IoT data platform that combines a graphical user interface for domain experts with an extensible framework for developers. It enables teams to connect industrial data sources, process real-time data streams, store historical data, and build data-driven applications on top of industrial equipment.

StreamPipes provides an opinionated architecture for managing industrial IoT data. Most users rely on StreamPipes to make data from machines, production systems, and other industrial assets available to analytics, monitoring, and application layers.

A standard StreamPipes installation includes everything needed to get started: a messaging system for real-time data exchange, with NATS as the default and support for additional protocols, as well as a time-series database for storing historical data. StreamPipes also includes a wide range of connectors tailored to industrial IoT requirements. For example, it provides extensive OPC UA support, including a web-based node browser and support for OPC UA events.

StreamPipes is fully open source, governed by the Apache Software Foundation, and includes enterprise-grade capabilities such as user and role management, OAuth 2.0 integration, and support for geographically distributed deployments that simplify communication between OT and IT networks.

As a ready-to-use platform, StreamPipes enables users to implement industrial IoT use cases on top of a reliable data foundation. Developers can extend the platform through REST APIs, client libraries for various programming languages, and an SDK for building custom connectors, processors, sinks, and application logic.

Product Tour

The repository already contains a few visuals. The gallery below uses them directly and reserves explicit slots for additional screenshots so the README can evolve without another structural rewrite.

FeaturePreview
Connect data sources with a guided setup flowStreamPipes Connect
Build stream analytics pipelines visuallyStreamPipes Pipeline Editor
Create beautiful charts and dashboardsCharts and Dashboards
Asset-centric organization and navigationAsset Management
Administration, users, and platform operationsSecurity and User Managemnet

Built for users

  • Connect industrial and messaging systems such as OPC UA, PLCs, MQTT, REST, Pulsar, Kafka, and more.
  • Build harmonization and analytics pipelines with a library of ready-to-use adapters, processors, and sinks.
  • Explore historical data visually with charts tailored to time-series use cases.
  • Create live dashboards for real-time monitoring on the shop floor or in operations centers.
  • Organize pipelines, streams, and dashboards around assets and operational structures.

Built for developers

  • Extend the platform with custom adapters, processors, and sinks through the Java SDK.
  • Run pipeline elements as standalone microservices in central or edge deployments.
  • Integrate existing processing logic and ML models into reusable pipeline elements.
  • Use our Python, Go or Java client to interact with StreamPipes from your own applications.

Quick Start

Run StreamPipes as a user

The fastest way to get a full installation with extensions is to use one of the Docker-based installers:

For most first-time users, installer/compose is the right starting point.

cd installer/compose
docker-compose up -d

After the services are up, open http://localhost to complete the setup in the browser.

Build StreamPipes as a developer

Prerequisites:

  • Java 25 JDK
  • Maven 3.8+
  • Node.js and npm for the UI build
  • Docker and Docker Compose

Backend build:

mvn clean package

UI build:

cd ui
npm install
npm run build

From the repository root, you can start the full stack with:

docker-compose up --build -d

This will start a development stack with no volumes! Choose the installation options from the installer page for production setups.

For backend changes, prefer targeted module validation first, for example:

mvn -pl <module> -am test

Documentation

The main documentation lives at streampipes.apache.org/docs.

Repository Structure

This repository contains the StreamPipes platform, SDKs, extensions, installers, and UI in a single monorepo. A few important entry points:

Extending StreamPipes

StreamPipes is designed to be extended. Custom processors, sinks, and data sources can be packaged as pipeline elements and deployed independently of the core platform.

  • Use the Java SDK to wrap existing processing logic.
  • Package new functionality as containerized microservices.
  • Deploy extensions centrally or near the edge, depending on latency and infrastructure constraints.

The bundled extension code lives in streampipes-extensions.

Community

Get help

Or simply use Github Discussions.

To subscribe directly to a mailing list:

Contribute

Contributions are welcome across core services, UI, extensions, installers, and documentation.

Report bugs or request features

License

Apache License 2.0