#api #engine #data-stream #io #utilities

fluxus-api

High-level API for Fluxus stream processing engine

4 releases

Uses new Rust 2024

new 0.1.3 Apr 24, 2025
0.1.2 Apr 24, 2025
0.1.1 Apr 23, 2025
0.1.0 Apr 23, 2025

#494 in Configuration

Download history 130/week @ 2025-04-17

132 downloads per month
Used in fluxus

Apache-2.0

93KB
2K SLoC

Fluxus API

Core API definitions and interfaces for the Fluxus stream processing engine.

Overview

This crate provides the public API for building stream processing applications with Fluxus. It includes:

  • DataStream - The main abstraction for working with data streams
  • Source and Sink interfaces
  • Stream operations (map, filter, aggregate, etc.)
  • Window configurations
  • I/O utilities

Key Components

DataStream

The DataStream type is the main entry point for building stream processing pipelines:

DataStream::new(source)
    .map(|x| x * 2)
    .filter(|x| x > 0)
    .window(WindowConfig::Tumbling { size_ms: 1000 })
    .aggregate(initial_state, |state, value| /* aggregation logic */)
    .sink(sink)

Windows

Supported window types:

  • Tumbling Windows - Fixed-size, non-overlapping windows
  • Sliding Windows - Fixed-size windows that slide by a specified interval
  • Session Windows - Dynamic windows based on activity timeouts

I/O

Pre-built source and sink implementations:

  • CollectionSource - Create a stream from a collection
  • CollectionSink - Collect stream results into a collection
  • Additional I/O implementations for files, networks, etc.

Usage

Add this to your Cargo.toml:

[dependencies]
fluxus-api = "0.1"

See the fluxus-examples crate for complete usage examples.

Dependencies

~6–15MB
~141K SLoC