A Repository for commons utilities implementations for Reactive Streams.
I.e., converts non-reactive data sources into Publisher
s.
PublisherAmb
: relays signals of that source Publisher which responds first with any signalPublisherArray
: emits the elements of an arrayPublisherCallable
: emits a single value returned by aCallable
PublisherCompletableFuture
: emits a single value produced by aCompletableFuture
PublisherConcatArray
: concatenate an array ofPublisher
sPublisherConcatIterable
: concatenate anIterable
sequence ofPublisher
sPublisherDefer
: calls aSupplier
to create the actualPublisher
theSubscriber
will be subscribed to.PublisherEmpty
: does not emit any value and callsonCompleted
; useinstance()
to get its singleton instance with the proper type parameterPublisherError
: emits a constant or generated Throwable exceptionPublisherFuture
: awaits and emits a single value emitted by aFuture
PublisherGenerate
: generate signals one-by-one via a functionPublisherIterable
: emits the elements of anIterable
PublisherJust
: emits a single valuePublisherNever
: doesn't emit any signal other thanonSubscribe
; useinstance()
to get its singleton instance with the proper type parameterPublisherRange
: emits a range of integer valuesPublisherStream
: emits elements of aStream
PublisherUsing
: create a resource, stream values in a Publisher derived from the resource and release the resource when the sequence completes or the Subscriber cancels
PublisherAccumulate
: Accumulates the source values with an accumulator function and returns the intermediate results of this function applicationPublisherAll
: emits a single true if all values of the source sequence match the predicatePublisherAny
: emits a single true if any value of the source sequence matches the predicatePublisherBuffer
: buffers certain number of subsequent elements and emits the buffersPublisherBufferBoundary
: buffers elements into continuous, non-overlapping lists where another Publisher signals the start/end of the buffer regionsPublisherBufferStartEnd
: buffers elements into possibly overlapping buffers whose boundaries are determined by a start Publisher's element and a signal of a derived PublisherPublisherCollect
: collects the values into a container and emits it when the source completesPublisherCombineLatest
: combines the latest values of many sources through a functionPublisherCount
: counts the number of elements the source sequence emitsPublisherDistinct
: filters out elements that have been seen previously according to a custom collectionPublisherDistinctUntilChanged
: filters out subsequent and repeated elementsPublisherDefaultIfEmpty
: emits a single value if the source is emptyPublisherDelaySubscription
: delays the subscription to the main source until the other source signals a value or completesPublisherDrop
: runs the source in unbounded mode and drops values if the downstream doesn't request fast enoughPublisherElementAt
: emits the element at the specified index locationPublisherFilter
: filters out values which doesn't pass a predicatePublisherIgnoreElements
: ignores values and passes only the terminal signals alongPublisherIsEmpty
: returns a single true if the source sequence is emptyPublisherLatest
: runs the source in unbounded mode and emits the latest value if the downstream doesn't request fast enoughPublisherLift
: maps the downstream Subscriber into an upstream Subscriber which allows implementing custom operators via lambdasPublisherMap
: map values to other values via a functionPublisherPeek
: peek into the lifecycle and signals of a streamPublisherReduce
: aggregates the source values with the help of an accumulator function and emits the the final accumulated valuePublisherRepeat
: repeatedly streams the source sequence fixed or unlimited timesPublisherRepeatPredicate
: repeatedly stream the source if a predicate returns truePublisherRepeatWhen
: repeats a source when a companion sequence signals an item in response to the main's completion signalPublisherResume
: if the source fails, the stream is resumed by another Publisher returned by a function for the failure exceptionPublisherRetry
: retry a failed source sequence fixed or unlimited timesPublisherRetryPredicate
: retry if a predicate function returns true for the exceptionPublisherRetryWhen
: retries a source when a companion sequence signals an item in response to the main's error signalPublisherSample
: samples the main source whenever the other Publisher signals a valuePublisherScan
: aggregates the source values with the help of an accumulator function and emits the intermediate resultsPublisherSingle
: expects the source to emit only a single itemPublisherSkip
: skips a specified amount of valuesPublisherSkipLast
: skips the last N elementsPublisherSkipUntil
: skips values until another sequence signals a value or completesPublisherSkipWhile
skips values while the predicate returns truePublisherSwitchIfEmpty
: continues with another sequence if the first sequence turns out to be empty.PublisherSwitchMap
: switches to and streams a Publisher generated via a function whenever the upstream signals a valuePublisherTake
: takes a specified amount of values and completesPublisherTakeLast
: emits only the last N values the source emitted before its completionPublisherTakeWhile
: relays values while a predicate returns true for the values (checked before each value)PublisherTakeUntil
: relays values until another Publisher signalsPublisherTakeUntilPredicate
: relays values until a predicate returns true (checked after each value)PublisherThrottleFirst
: takes a value from upstream then uses the duration provided by a generated Publisher to skip other values until that other Publisher signalsPublisherThrottleTimeout
: emits the last value from upstream only if there were no newer values emitted during the time window provided by a publisher for that particular last valuePublisherTimeout
uses per-itemPublisher
s that when they fire mean the timeout for that particular item unless a new item arrives in the meantimePublisherWindow
: splits the source sequence into possibly overlapping windows of given sizePublisherWindowBoundary
: splits the source sequence into continuous, non-overlapping windows where the window boundary is signalled by another PublisherPublisherWindowStartEnd
: splits the source sequence into potentially overlapping windows controlled by a start Publisher and a derived end Publisher for each start valuePublisherWithLatestFrom
: combines values from a master source with the latest values of another Publisher via a functionPublisherZipIterable
: pairwise combines a sequence of values with elements from an iterable
I.e., these allow leaving the reactive-streams world.