rsocket-js
implements the 1.0 version of the RSocket protocol
and is designed for use in Node.js and browsers. From reactivesocket.io:
ReactiveSocket is an application protocol providing Reactive Streams semantics over an asynchronous, binary boundary.
The following are currently implemented (Note: the project is experimental and there may be bugs):
- rsocket 1.0 client
- Node.js TCP transport client
- Browser WebSocket client (binary)
- TCK client for spec compliance testing
- UTF-8 and Binary encoding at the transport layer
- Optional JSON (de)serialization at the rsocket layer (send and receive objects instead of strings)
- ReactiveStream data types
The following features are not yet implemented:
requestChannel()
metadataPush()
- rsocket server
- LEASE
- RESUME
rsocket-js includes an implementation of the Reactive Streams API in JavaScript. Note that unlike standard Rx Observables, Reactive Streams are lazy, pull-based, and support back-pressure. Two types are implemented:
Flowable
: An implementation of the Reactive StreamsPublisher
type, providing a demand-driven stream of values over time.Single
: LikeFlowable
, but resolves to a single value.
rsocket-js public API methods typically return values of these types.
Next, read about the client configuration.