• This repository has been archived on 25/Feb/2022
  • Stars
    star
    353
  • Rank 115,997 (Top 3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A joint research effort for building highly optimized Reactive-Streams compliant operators.

reactive-streams-commons is no longer actively maintained by VMware, Inc.

reactive-streams-commons

A joint research effort for building highly optimized Reactive-Streams compliant operators. Current implementors include RxJava2 and Reactor.

Java 8 required.

Maven

repositories {
    maven { url 'https://repo.spring.io/libs-snapshot' }
}

dependencies {
    compile 'io.projectreactor:reactive-streams-commons:0.6.0.BUILD-SNAPSHOT'
}

Snapshot directory.

Operator-fusion documentation

Supported datasources

I.e., converts non-reactive data sources into Publishers.

  • PublisherAmb : relays signals of that source Publisher which responds first with any signal
  • PublisherArray : emits the elements of an array
  • PublisherCallable : emits a single value returned by a Callable
  • PublisherCompletableFuture : emits a single value produced by a CompletableFuture
  • PublisherConcatArray : concatenate an array of Publishers
  • PublisherConcatIterable : concatenate an Iterable sequence of Publishers
  • PublisherDefer : calls a Supplier to create the actual Publisher the Subscriber will be subscribed to.
  • PublisherEmpty : does not emit any value and calls onCompleted; use instance() to get its singleton instance with the proper type parameter
  • PublisherError : emits a constant or generated Throwable exception
  • PublisherFuture : awaits and emits a single value emitted by a Future
  • PublisherGenerate : generate signals one-by-one via a function
  • PublisherInterval : periodically emits an ever increasing sequence of long values
  • PublisherIterable : emits the elements of an Iterable
  • PublisherJust : emits a single value
  • PublisherNever : doesn't emit any signal other than onSubscribe; use instance() to get its singleton instance with the proper type parameter
  • PublisherRange : emits a range of integer values
  • PublisherStream : emits elements of a Stream
  • PublisherTimer : emit a single 0L after a specified amount of time
  • 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
  • PublisherZip : Repeatedly takes one item from all source Publishers and runs it through a function to produce the output item

Supported transformations

  • ConnectablePublisherAutoConnect given a ConnectablePublisher, it connects to it once the given amount of subscribers subscribed
  • ConnectablePublisherRefCount given a ConnectablePublisher, it connects to it once the given amount of subscribers subscribed to it and disconnects once all subscribers cancelled
  • ConnectablePublisherPublish : allows dispatching events from a single source to multiple subscribers similar to a Processor but the connection can be manually established or stopped.
  • PublisherAccumulate : Accumulates the source values with an accumulator function and returns the intermediate results of this function application
  • PublisherAggregate : Aggregates the source values with an aggergator function and emits the last result.
  • PublisherAll : emits a single true if all values of the source sequence match the predicate
  • PublisherAny : emits a single true if any value of the source sequence matches the predicate
  • PublisherAwaitOnSubscribe : makes sure onSubscribe can't trigger the onNext events until it returns
  • PublisherBuffer : buffers certain number of subsequent elements and emits the buffers
  • PublisherBufferBoundary : buffers elements into continuous, non-overlapping lists where another Publisher signals the start/end of the buffer regions
  • PublisherBufferBoundaryAndSize : buffers elements into continuous, non-overlapping lists where the each buffer is emitted when they become full or another Publisher signals the boundary of the buffer regions
  • PublisherBufferStartEnd : buffers elements into possibly overlapping buffers whose boundaries are determined by a start Publisher's element and a signal of a derived Publisher
  • PublisherCollect : collects the values into a container and emits it when the source completes
  • PublisherCombineLatest : combines the latest values of many sources through a function
  • PublisherConcatMap : Maps each upstream value into a Publisher and concatenates them into one sequence of items
  • PublisherCount : counts the number of elements the source sequence emits
  • PublisherDistinct : filters out elements that have been seen previously according to a custom collection
  • PublisherDistinctUntilChanged : filters out subsequent and repeated elements
  • PublisherDefaultIfEmpty : emits a single value if the source is empty
  • PublisherDelaySubscription : delays the subscription to the main source until the other source signals a value or completes
  • PublisherDetach : detaches the both the child Subscriber and the Subscription on termination or cancellation.
  • PublisherDrop : runs the source in unbounded mode and drops values if the downstream doesn't request fast enough
  • PublisherElementAt : emits the element at the specified index location
  • PublisherFilter : filters out values which doesn't pass a predicate
  • PublisherFlatMap : maps a sequence of values each into a Publisher and flattens them back into a single sequence, interleaving events from the various inner Publishers
  • PublisherFlattenIterable : concatenates values from Iterable sequences generated via a mapper function
  • PublisherGroupBy : groups source elements into their own Publisher sequences via a key function
  • PublisherIgnoreElements : ignores values and passes only the terminal signals along
  • PublisherIsEmpty : returns a single true if the source sequence is empty
  • PublisherLatest : runs the source in unbounded mode and emits the latest value if the downstream doesn't request fast enough
  • PublisherLift : maps the downstream Subscriber into an upstream Subscriber which allows implementing custom operators via lambdas
  • PublisherMap : map values to other values via a function
  • PublisherPeek : peek into the lifecycle and signals of a stream
  • PublisherReduce : aggregates the source values with the help of an accumulator function and emits the the final accumulated value
  • PublisherRepeat : repeatedly streams the source sequence fixed or unlimited times
  • PublisherRepeatPredicate : repeatedly stream the source if a predicate returns true
  • PublisherRepeatWhen : repeats a source when a companion sequence signals an item in response to the main's completion signal
  • PublisherResume : if the source fails, the stream is resumed by another Publisher returned by a function for the failure exception
  • PublisherRetry : retry a failed source sequence fixed or unlimited times
  • PublisherRetryPredicate : retry if a predicate function returns true for the exception
  • PublisherRetryWhen : retries a source when a companion sequence signals an item in response to the main's error signal
  • PublisherSample : samples the main source whenever the other Publisher signals a value
  • PublisherScan : aggregates the source values with the help of an accumulator function and emits the intermediate results
  • PublisherSingle : expects the source to emit only a single item
  • PublisherSkip : skips a specified amount of values
  • PublisherSkipLast : skips the last N elements
  • PublisherSkipUntil : skips values until another sequence signals a value or completes
  • PublisherSkipWhile: skips values while the predicate returns true
  • PublisherStreamCollector : Collects the values from the source sequence into a java.util.stream.Collector instance; see Collectors utility class in Java 8+
  • PublisherSwitchIfEmpty : 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 value
  • PublisherTake : takes a specified amount of values and completes
  • PublisherTakeLast : emits only the last N values the source emitted before its completion
  • PublisherTakeWhile : relays values while a predicate returns true for the values (checked before each value)
  • PublisherTakeUntil : relays values until another Publisher signals
  • PublisherTakeUntilPredicate : 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 signals
  • PublisherThrottleTimeout : 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 value
  • PublisherTimeout uses per-item Publishers that when they fire mean the timeout for that particular item unless a new item arrives in the meantime
  • PublisherWindow : splits the source sequence into possibly overlapping windows of given size
  • PublisherWindowBatch : batches the source sequence into continuous, non-overlapping windows where the length of the windows is determined by a fresh boundary Publisher or a maximum elemenets in that window
  • PublisherWindowBoundary : splits the source sequence into continuous, non-overlapping windows where the window boundary is signalled by another Publisher
  • PublisherWindowBoundaryAndSize : splits the source sequence into continuous, non-overlapping windows where the window boundary is signalled by another Publisher or if a window received a specified amount of values
  • PublisherWindowStartEnd : splits the source sequence into potentially overlapping windows controlled by a start Publisher and a derived end Publisher for each start value
  • PublisherWithLatestFrom : combines values from a master source with the latest values of another Publisher via a function
  • PublisherZip : Repeatedly takes one item from all source Publishers and runs it through a function to produce the output item
  • PublisherZipIterable : pairwise combines a sequence of values with elements from an iterable

Supported extractions

I.e., these allow leaving the reactive-streams world.

  • BlockingIterable : an iterable that consumes a Publisher in a blocking fashion
  • BlockingFuture : can return a future that consumes the source entierly and returns the very last value
  • BlockingStream : allows creating sequential and parallel j.u.stream.Stream flows out of a source Publisher
  • PublisherBase.blockingFirst : returns the very first value of the source, blocking if necessary; returns null for an empty sequence.
  • PublisherBase.blockingLast : returns the very last value of the source, blocking if necessary; returns null for an empty sequence.
  • PublisherBase.peekLast : returns the last value of a synchronous source or likely null for other or empty sequences.

More Repositories

1

spring-mvc-showcase

Demonstrates the features of the Spring MVC web framework
Java
4,994
star
2

spring-security-oauth

Support for adding OAuth1(a) and OAuth2 features (consumer and provider) for Spring web applications.
Java
4,683
star
3

sagan

The spring.io site and reference application
HTML
3,127
star
4

spring-native

Spring Native is now superseded by Spring Boot 3 official native support
Java
2,746
star
5

spring-data-book

Spring Data - The Definitive Guide - Modern Data Access for Enterprise Java Developers
Java
1,379
star
6

greenhouse

Reference web application for Spring technologies and social destination for Spring developers.
Java
1,320
star
7

spring-android-samples

Spring for Android Sample Applications
Java
761
star
8

spring-android

Support for Spring's RestTemplate within native Android applications
Java
704
star
9

spring-cloud-gcp

Integration for Google Cloud Platform APIs with Spring
Java
698
star
10

spring-roo

Spring Roo is a next-generation rapid application development tool for Java developers. It focuses on higher productivity, stock-standard Java APIs, high usability, avoiding engineering trade-offs and facilitating easy Roo removal.
Java
695
star
11

spring-hadoop

Spring for Apache Hadoop is a framework for application developers to take advantage of the features of both Hadoop and Spring.
Java
624
star
12

spring-social

Allows you to connect your applications with SaaS providers such as Facebook and Twitter.
Java
615
star
13

spring-cloud-aws

All development has moved to https://github.com/awspring/spring-cloud-aws Integration for Amazon Web Services APIs with Spring
Java
586
star
14

spring-social-samples

Samples of using Spring Social
Java
532
star
15

spring-cloud-security

Security concerns for distributed applications implemented in Spring
Java
523
star
16

spring-hadoop-samples

Spring Hadoop Samples
Java
490
star
17

spring-xd

Spring XD makes it easy to solve common big data problems such as data ingestion and export, real-time analytics, and batch workflow orchestration
Java
481
star
18

spring-scala

Scala
462
star
19

rest-shell

Command-line shell for interacting with Spring HATEOAS-compliant REST resources
Java
455
star
20

spring-data-keyvalue-examples

Examples using Spring Data Key Values features
XSLT
434
star
21

spring-security-saml

SAML extension for the Spring Security project
Java
417
star
22

spring-data-solr

Spring Data - Apache Solr integration
Java
385
star
23

spring-integration-kafka

Java
325
star
24

authserver

Java
319
star
25

spring-security-oauth2-boot

Provides spring-security-oauth2 & Boot 2 integration (i.e. autoconfig)
Java
314
star
26

spring-ide

Spring Development Environment for Eclipse
Java
304
star
27

eclipse-integration-gradle

Gradle Tooling for Eclipse
Java
300
star
28

spring-batch-admin

Spring Batch Admin: runtime application and utilities for running Jobs with Spring Batch
Java
271
star
29

spring-social-facebook

Facebook API binding and connect support.
Java
244
star
30

sso

Java
238
star
31

spring-cloud-pipelines

[DEPRECATED] Codebase containing Concourse and Jenkins opinionated pipelines. Moved to https://github.com/CloudPipelines/
Shell
235
star
32

aws-maven

Java
215
star
33

platform

The lean and modular platform for modern applications
Groovy
215
star
34

sample-zuul-filters

Samples of custom Zuul 1 filters for use in Spring Cloud Netflix
Java
210
star
35

spring-integration-java-dsl

Java
193
star
36

spring-mobile

Extensions to Spring MVC for developing mobile web applications.
Java
181
star
37

spring-xd-samples

Sample starter applications and code for use with the Spring XD project
Java
180
star
38

spring-security-javaconfig

Spring Security Java Configuration Support (to be merged with spring-security-config)
Java
176
star
39

spring-cloud-cluster

This project is now superseded by code in Spring Integration.
Java
155
star
40

head-first-reactive-with-spring-and-reactor

Java
152
star
41

grails-data-mapping

Grails Data Mapping Project
151
star
42

spring-data-document-examples

Examples using Spring Data Document features
Java
148
star
43

spring-cloud-etcd

Java
144
star
44

spring-mobile-samples

Spring Mobile Sample Applications
JavaScript
144
star
45

Spring-Integration-in-Action

Source code to accompany the book
Java
134
star
46

aws-refapp

Refernce app for spring-cloud-aws
Java
132
star
47

spring-social-twitter

Twitter API binding and connect support.
Java
120
star
48

toolsuite-distribution

the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite
Shell
109
star
49

spring-sync

Enables efficient communication and data synchronization between clients and Spring server applications.
Java
107
star
50

springbox-cloud

Spring Cloud Reference Application
Java
107
star
51

understanding

105
star
52

zero-downtime-deployment

Code backing up the article about zero downtime deployment
Java
101
star
53

hystrix-dashboard

Java
99
star
54

spring-cloud-stream-app-starters

Starters for Spring Cloud Stream Apps
Java
93
star
55

reactor-samples

Sample code of how to do simple things in Reactor
Java
92
star
56

tensorflow

Java
90
star
57

spring-data-jdbc-ext

Spring Data JDBC Extensions. Support for database specific extensions to standard JDBC including support for Oracle RAC fast connection failover, AQ JMS support and support for using advanced data types.
Java
88
star
58

spring-social-github

Github API binding and connect support.
Java
87
star
59

reactor-spring

Reactor 2.0 Spring Components
Java
87
star
60

spring-data-rest-webmvc

Spring Data REST Exporter starter web application
Java
86
star
61

spring-boot-r2dbc

Experimental Spring Boot support for R2DBC
84
star
62

spring-init

Java
83
star
63

reactor-ipc

Crossing IO boundaries on the JVM with Reactive Streams
CSS
78
star
64

spring-framework-issues

User-contributed projects reproducing issues logged against Spring Framework GitHub issues. Note: this is not the Spring Framework issue tracker -->
Java
78
star
65

spring-cloud-loadbalancer

Exploratory repo for a load balancer implementation. Now part of spring-cloud-commons
Java
75
star
66

spring-social-linkedin

LinkedIn API binding and connect support.
Java
72
star
67

spring-test-htmlunit

Provides integration with Spring Test MVC and HtmlUnit
Java
71
star
68

html5expense

Expense reporting reference app demonstrating HTML5 and cross-platform mobile
JavaScript
71
star
69

scripts

Shell
68
star
70

spring-integration-dsl-scala

Spring Integration Scala DSL
Scala
67
star
71

gs-routing-and-filtering

Routing and Filtering :: Learn how to route and filter requests to a microservice using Netflix Zuul
Java
67
star
72

spring-cloud-dataflow-server-kubernetes

Spring Cloud Data Flow Implementation for Kubernetes
XSLT
65
star
73

spring-data-graph

Provides support to increase developer productivity in Java when using a graph database like Neo4j. Uses familiar Spring concepts such as a template classes for core API usage and provides an annotation based programming model using AspectJ.
Java
65
star
74

spring-gemfire-examples

Sample projects to get started with Spring Gemfire
Java
64
star
75

fortune-teller

Yet another great Spring Cloud sample app...
Java
60
star
76

zuul-server

Java
60
star
77

reactor-core-dotnet

Fluent reactive programming library for C# on top of Reactive-Streams, mirroring the Reactor-Core for JVM
C#
58
star
78

spring-flex

Spring BlazeDS Integration
Java
57
star
79

spring-cloud-config-server-mongodb

Java
57
star
80

spring-data-solr-examples

Spring Data Solr - Examples
Java
57
star
81

spring-integration-dsl-groovy

Groovy DSL for Spring Integration
Groovy
56
star
82

spring-insight-plugins

Public Repository of Plugins for Spring Insight
Java
55
star
83

messaging-application

Sample application used for the presentation showing different test types for an event driven application
Java
53
star
84

propdeps-plugin

New "provided" and "optiona;
Groovy
52
star
85

reactor-scala-extensions

A scala extension for Project Reactor's Flux and Mono
Scala
52
star
86

cdc-debezium

Change Data Capture (CDC) source that captures and streams change events from various databases. Leverages on Debezium and supports MySQL, PostgreSQL, MongoDB, Oracle and SQL Server databases.
Java
52
star
87

reactor-core-js

The Reactive-Streams based implementation of Reactor-Core in Javascript
JavaScript
51
star
88

spring-python

This project has moved to https://github.com/springpython/springpython. This repo is an archived fork and will not see more updates.
Python
49
star
89

spring-cloud-rsocket

This repository is now inactive. Please see https://github.com/rsocket-routing/
Java
49
star
90

spring-data-graph-examples

Examples using Spring Data Graph features
Java
49
star
91

flight627

prototype work towards cloud-based developer tooling
JavaScript
48
star
92

greenhouse-android

Greenhouse native Android client
Java
48
star
93

spring-tenancy

Spring Tenancy
Java
47
star
94

cloudpipelines-scripts

https://cloud.spring.io/cloudpipelines-scripts/
Shell
46
star
95

spring-security-saml-dsl

Spring security okta dsl.
Java
43
star
96

spring-hadoop-samples-old

Sample Applications for getting started with Spring for Apache Hadoop
Java
43
star
97

reactor-tools

A set of tools to improve Project Reactor's debugging and development experience.
Java
43
star
98

spring-cloud-stream-modules

Spring Boot based enterprise integration applications that provide integration with external systems
Java
42
star
99

spring-net-rest

Simplifies communication with HTTP servers, and enforces RESTful principles. It handles HTTP connections, leaving application code to provide URLs (with possible template variables) and extract results.
C#
42
star
100

cloudfoundry-service-broker

Sample project for Spring Cloud - Cloud Foundry Service Broker
Java
41
star