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.
| Feature | Preview |
|---|---|
| Connect data sources with a guided setup flow | |
| Build stream analytics pipelines visually | |
| Create beautiful charts and dashboards | |
| Asset-centric organization and navigation | |
| Administration, users, and platform operations |
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.
Deprecated: The StreamPipes CLI remains available for existing users, but it is deprecated and will be removed in a future release. For local development, prefer the dev container setup described below.
The repository includes an experimental dev container setup in .devcontainer. It starts the required third-party services with Docker Compose and provides a containerized development environment for running StreamPipes from source.
For users not using VS Code, the dev container files can still serve as the reference setup for the required development services and environment variables. See .devcontainer/docker-compose.yml, .devcontainer/.env.example, and .devcontainer/README.md for the current Compose configuration.
For VS Code users, open the repository in VS Code and run Dev Containers: Reopen in Container. After the container has started, use the included VS Code tasks or debug launch configurations to start the core, extensions, and UI.
Prerequisites:
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
The main documentation lives at streampipes.apache.org/docs.
This repository contains the StreamPipes platform, SDKs, extensions, installers, and UI in a single monorepo. A few important entry points:
streampipes-service-core for bootstrapping, security, migrations, and schedulingstreampipes-rest for HTTP and resource APIsstreampipes-extensions for bundled adapters and pipeline elementsstreampipes-sdk for extension developmentui for the web applicationinstaller for Compose, deprecated CLI, and Kubernetes deployment optionsStreamPipes is designed to be extended. Custom processors, sinks, and data sources can be packaged as pipeline elements and deployed independently of the core platform.
The bundled extension code lives in streampipes-extensions.
Or simply use Github Discussions.
To subscribe directly to a mailing list:
Contributions are welcome across core services, UI, extensions, installers, and documentation.