Streams
Module info
The Akka dependencies are available from Akka’s library repository. To access them there, you need to configure the URL for this repository.
- sbt
resolvers += "Akka library repository".at("https://repo.akka.io/maven")
- Maven
<project> ... <repositories> <repository> <id>akka-repository</id> <name>Akka library repository</name> <url>https://repo.akka.io/maven</url> </repository> </repositories> </project>
- Gradle
repositories { mavenCentral() maven { url "https://repo.akka.io/maven" } }
To use Akka Streams, add the module to your project:
- sbt
val AkkaVersion = "2.9.7" libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-stream" % AkkaVersion, "com.typesafe.akka" %% "akka-stream-testkit" % AkkaVersion % Test )
- Maven
<properties> <scala.binary.version>2.13</scala.binary.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-bom_${scala.binary.version}</artifactId> <version>2.9.7</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-stream_${scala.binary.version}</artifactId> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-stream-testkit_${scala.binary.version}</artifactId> <scope>test</scope> </dependency> </dependencies>
- Gradle
def versions = [ ScalaBinary: "2.13" ] dependencies { implementation platform("com.typesafe.akka:akka-bom_${versions.ScalaBinary}:2.9.7") implementation "com.typesafe.akka:akka-stream_${versions.ScalaBinary}" testImplementation "com.typesafe.akka:akka-stream-testkit_${versions.ScalaBinary}" }
Project Info: Akka Streams | |
---|---|
Artifact | com.typesafe.akka
akka-stream
2.9.7
|
JDK versions | Eclipse Temurin JDK 11 Eclipse Temurin JDK 17 Eclipse Temurin JDK 21 |
Scala versions | 2.13.14, 3.3.3 |
JPMS module name | akka.stream |
License | |
Readiness level |
Since 2.5.0, 2017-04-13
|
Home page | https://akka.io/ |
API documentation | |
Forums | |
Release notes | akka.io blog |
Issues | Github issues |
Sources | https://github.com/akka/akka |
- Introduction
- Streams Quickstart Guide
- Design Principles behind Akka 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
- Sink.collection
- collectType
- 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
- divertTo
- drop
- dropWhile
- dropWithin
- Source.empty
- expand
- extrapolate
- Source.failed
- filter
- filterNot
- flatMapConcat
- flatMapMerge
- flatMapPrefix
- Flow.flattenOptional
- fold
- Sink.fold
- foldAsync
- Sink.foreach
- Sink.foreachAsync
- Source.applySource.from
- 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
- groupedWeighted
- groupedWeightedWithin
- groupedWithin
- Compression.gunzip
- Compression.gzip
- Sink.head
- Sink.headOption
- idleTimeout
- Sink.ignore
- Compression.inflate
- initialDelay
- initialTimeout
- interleave
- interleaveAll
- intersperse
- 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
- mapAsyncUnordered
- mapConcat
- mapError
- mapWithResource
- Source.maybe
- merge
- mergeAll
- mergeLatest
- mergePreferred
- mergePrioritized
- mergePrioritizedN
- MergeSequence
- mergeSorted
- monitor
- never
- Sink.never
- Sink.onComplete
- onErrorComplete
- RestartSource.onFailuresWithBackoff
- RestartFlow.onFailuresWithBackoff
- 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
- take
- Sink.takeLast
- 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