A Python package for online/streaming machine learning.

Get started GitHub Repo


All the tools in the library can be updated with a single observation at a time, and can therefore be used to process streaming data.


In the streaming setting, data can evolve. Adaptive methods are specifically designed to be robust against concept drift in dynamic environments.

General purpose

River caters for different ml problems, including regression, classification, and unsupervised learning. It can also be used for adhoc tasks, such as computing online metrics, and concept drift detection.

Efficient & easy to use

Streaming techniques efficiently handle resources such as memory and processing time given the unbounded nature of data streams. River is designed for users with any experience level.