RSocket
{{Short description|Application protocol that supports Reactive Streams}}
{{Infobox software
| title = RSocket
| name =
| genre = Reactive Streams networking
| license = Apache License
| released = {{Start date and age|2015|10|26|df=yes}}
| programming language = Java, JavaScript, Kotlin, C#, Go, C++, Python
| website = {{URL|https://rsocket.io/}}
| repo = {{URL|https://github.com/rsocket}}
}}
{{Portal|Free and open-source software}}
RSocket is an application protocol initially developed by [https://www.netflix.com/ Netflix],{{cite web|url=https://lmonkiewicz.com/posts/a-summary-of-code-europe-2017-in-warsaw/|title=A summary of Code Europe 2017 in Warsaw|first= Łukasz|last=Monkiewicz|date=June 4, 2017|website=lmonkiewicz.com |publisher= |access-date=May 7, 2017}} 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.{{cite web|url=https://github.com/rsocket/rsocket/blob/master/Motivations.md|title=Motivations|first= Ben|last=Christensen|date=Apr 3, 2017|website=github.com |publisher= |access-date=May 7, 2017}}
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.
References
{{reflist}}
External links
- {{Official website|https://rsocket.io/}}
- {{GitHub|rsocket}}
Category:Application programming interfaces
Category:Software using the Apache license
{{internet-stub}}
{{DEFAULTSORT:RSocket}}