RSocket
Application protocol that supports Reactive Streams
From Wikipedia, the free encyclopedia
RSocket is an application protocol initially developed by Netflix,[1] that supports Reactive Streams. The motivation behind its development was to replace HTTP, which is inefficient for many tasks such as microservices communication, with a protocol that has less overhead.[2]
| RSocket | |
|---|---|
| Initial release | 26 October 2015 |
| Written in | Java, JavaScript, Kotlin, C#, Go, C++, Python |
| Type | Reactive Streams networking |
| License | Apache License |
| Website | rsocket |
| Repository | github |
Protocol
RSocket is a binary protocol for use on byte stream transports such as TCP and WebSocket. It enables the following symmetric interaction models via async message passing over a single connection:
- request/response (stream of 1)
- request/stream (finite stream of many)
- fire-and-forget (no response)
- channel (bidirectional streams)
It supports session resumption, to allow resuming long-lived streams across different transport connections. This is particularly useful for mobile‹–›server communication when network connections drop, switch, and reconnect frequently.