Streams
Module info
To use Pekko Streams, add the module to your project:
- sbt
 val PekkoVersion = "1.2.0-M2" libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-stream" % PekkoVersion, "org.apache.pekko" %% "pekko-stream-testkit" % PekkoVersion % Test )- Maven
 <properties> <scala.binary.version>2.13</scala.binary.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.pekko</groupId> <artifactId>pekko-bom_${scala.binary.version}</artifactId> <version>1.2.0-M2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.pekko</groupId> <artifactId>pekko-stream_${scala.binary.version}</artifactId> </dependency> <dependency> <groupId>org.apache.pekko</groupId> <artifactId>pekko-stream-testkit_${scala.binary.version}</artifactId> <scope>test</scope> </dependency> </dependencies>- Gradle
 def versions = [ ScalaBinary: "2.13" ] dependencies { implementation platform("org.apache.pekko:pekko-bom_${versions.ScalaBinary}:1.2.0-M2") implementation "org.apache.pekko:pekko-stream_${versions.ScalaBinary}" testImplementation "org.apache.pekko:pekko-stream-testkit_${versions.ScalaBinary}" }
| Project Info: Pekko Streams | |
|---|---|
| Artifact | org.apache.pekko 
  pekko-stream 
  1.2.0-M2 
  
   | 
| JDK versions | OpenJDK 8 OpenJDK 11 OpenJDK 17 OpenJDK 21  | 
| Scala versions | 2.13.16, 2.12.20, 3.3.6 | 
| JPMS module name | pekko.stream | 
| License | |
| Home page | https://pekko.apache.org/ | 
| API documentation | |
| Forums | |
| Release notes | Release Notes | 
| Issues | Github issues | 
| Sources | https://github.com/apache/pekko | 
- Introduction
 - Streams Quickstart Guide
 - Design Principles behind Apache Pekko Streams
 - Basics and working with Flows
 - Working with Graphs
  
- Dependency
 - Introduction
 - Constructing Graphs
 - Constructing and combining Partial Graphs
 - Constructing Sources, Sinks and Flows from Partial Graphs
 - Combining Sources and Sinks with simplified API
 - Building reusable Graph components
 - Predefined shapes
 - Bidirectional Flows
 - Accessing the materialized value inside the Graph
 - Graph cycles, liveness and deadlocks
 
 - Modularity, Composition and Hierarchy
 - Buffers and working with rate
 - Context Propagation
 - Dynamic stream handling
 - Custom stream processing
 - Futures interop
 - Actors interop
 - Reactive Streams Interop
 - Error Handling in Streams
 - Working with streaming IO
 - StreamRefs - Reactive Streams over the network
 - Pipelining and Parallelism
 - Testing streams
 - Substreams
 - Streams Cookbook
 - Configuration
 - Operators
  
- Source operators
 - Sink operators
 - Additional Sink and Source converters
 - File IO Sinks and Sources
 - Simple operators
 - Flow operators composed of Sinks and Sources
 - Asynchronous operators
 - Timer driven operators
 - Backpressure aware operators
 - Nesting and flattening operators
 - Time aware operators
 - Fan-in operators
 - Fan-out operators
 - Watching status operators
 - Actor interop operators
 - Compression operators
 - Error handling
 - Source.actorRef
 - Sink.actorRef
 - ActorSource.actorRef
 - ActorSink.actorRef
 - Source.actorRefWithBackpressure
 - Sink.actorRefWithBackpressure
 - ActorSource.actorRefWithBackpressure
 - ActorSink.actorRefWithBackpressure
 - aggregateWithBoundary
 - alsoTo
 - alsoToAll
 - Flow.asFlowWithContext
 - StreamConverters.asInputStream
 - StreamConverters.asJavaStream
 - ask
 - ActorFlow.ask
 - ActorFlow.askWithContext
 - ActorFlow.askWithStatus
 - ActorFlow.askWithContext
 - StreamConverters.asOutputStream
 - Sink.asPublisher
 - Source.asSourceWithContext
 - Source.asSubscriber
 - backpressureTimeout
 - Balance
 - batch
 - batchWeighted
 - Broadcast
 - buffer
 - Sink.cancelled
 - collect
 - Sink.collect
 - collectFirst
 - Sink.collection
 - collectType
 - collectWhile
 - Source.combine
 - Sink.combine
 - Source.completionStage
 - Flow.completionStageFlow
 - Sink.completionStageSink
 - Source.completionStageSource
 - completionTimeout
 - concat
 - concatAllLazy
 - concatLazy
 - conflate
 - conflateWithSeed
 - contramap
 - Source.cycle
 - Compression.deflate
 - delay
 - delayWith
 - detach
 - dimap
 - divertTo
 - drop
 - dropRepeated
 - dropWhile
 - dropWithin
 - Source.empty
 - Sink.exists
 - expand
 - extrapolate
 - Source.failed
 - filter
 - filterNot
 - flatMapConcat
 - flatMapMerge
 - flatMapPrefix
 - flattenMerge
 - Flow.flattenOptional
 - fold
 - Sink.fold
 - foldAsync
 - foldWhile
 - Sink.foldWhile
 - Sink.forall
 - Sink.foreach
 - Sink.foreachAsync
 - Sink.foreachParallel
 - Source.applySource.from
 - Source.fromArray
 - Source.fromCompletionStage
 - FileIO.fromFile
 - Source.fromFuture
 - Source.fromFutureSource
 - StreamConverters.fromInputStream
 - Source.fromIterator
 - fromJavaStream
 - StreamConverters.fromJavaStream
 - fromMaterializer
 - Sink.fromMaterializer
 - StreamConverters.fromOutputStream
 - FileIO.fromPath
 - Source.fromPublisher
 - Flow.fromSinkAndSource
 - Flow.fromSinkAndSourceCoupled
 - Source.fromSourceCompletionStage
 - Sink.fromSubscriber
 - Source.future
 - Flow.futureFlow
 - Sink.futureSink
 - Source.futureSource
 - groupBy
 - grouped
 - groupedAdjacentBy
 - groupedAdjacentByWeighted
 - groupedWeighted
 - groupedWeightedWithin
 - groupedWithin
 - Compression.gunzip
 - Compression.gzip
 - Sink.head
 - Sink.headOption
 - idleTimeout
 - Sink.ignore
 - Compression.inflate
 - initialDelay
 - initialTimeout
 - interleave
 - interleaveAll
 - intersperse
 - Source.iterate
 - StreamConverters.javaCollector
 - StreamConverters.javaCollectorParallelUnordered
 - keepAlive
 - Sink.last
 - Sink.lastOption
 - Source.lazily
 - Source.lazilyAsync
 - Source.lazyCompletionStage
 - Flow.lazyCompletionStageFlow
 - Sink.lazyCompletionStageSink
 - Source.lazyCompletionStageSource
 - Flow.lazyFlow
 - Source.lazyFuture
 - Flow.lazyFutureFlow
 - Sink.lazyFutureSink
 - Source.lazyFutureSource
 - Flow.lazyInitAsync
 - Sink.lazyInitAsync
 - Source.lazySingle
 - Sink.lazySink
 - Source.lazySource
 - limit
 - limitWeighted
 - log
 - logWithMarker
 - map
 - mapAsync
 - mapAsyncPartitioned
 - mapAsyncPartitionedUnordered
 - mapAsyncUnordered
 - mapConcat
 - mapError
 - mapWithResource
 - Source.maybe
 - merge
 - mergeAll
 - mergeLatest
 - mergePreferred
 - mergePrioritized
 - mergePrioritizedN
 - MergeSequence
 - mergeSorted
 - monitor
 - never
 - Sink.never
 - Sink.none
 - Sink.onComplete
 - onErrorComplete
 - RestartSource.onFailuresWithBackoff
 - RestartFlow.onFailuresWithBackoff
 - optionalVia
 - orElse
 - Partition
 - prefixAndTail
 - preMaterialize
 - Sink.preMaterialize
 - prepend
 - prependLazy
 - Source.queue
 - Sink.queue
 - Source.range
 - recover
 - recoverWith
 - recoverWithRetries
 - reduce
 - Sink.reduce
 - Source.repeat
 - scan
 - scanAsync
 - Sink.seq
 - setup
 - Sink.setup
 - Source.single
 - PubSub.sink
 - sliding
 - PubSub.source
 - splitAfter
 - splitWhen
 - statefulMap
 - statefulMapConcat
 - switchMap
 - take
 - Sink.takeLast
 - takeUntil
 - takeWhile
 - takeWithin
 - throttle
 - Source.tick
 - FileIO.toFile
 - FileIO.toPath
 - Source.unfold
 - Source.unfoldAsync
 - Source.unfoldResource
 - Source.unfoldResourceAsync
 - Unzip
 - UnzipWith
 - watch
 - watchTermination
 - wireTap
 - RestartSource.withBackoff
 - RestartFlow.withBackoff
 - RestartSink.withBackoff
 - RetryFlow.withBackoff
 - RetryFlow.withBackoffAndContext
 - zip
 - zipAll
 - zipLatest
 - zipLatestWith
 - Source.zipN
 - zipWith
 - zipWithIndex
 - Source.zipWithN
 
 
1.2.0-M2