https://github.com/jauntsdn/rsocket-jvm-interop-examples
https://github.com/jauntsdn/rsocket-jvm-interop-examples
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jauntsdn/rsocket-jvm-interop-examples
- Owner: jauntsdn
- Created: 2021-11-22T11:18:12.000Z (over 4 years ago)
- Default Branch: feature/oss
- Last Pushed: 2025-12-21T12:17:16.000Z (6 months ago)
- Last Synced: 2025-12-23T03:49:24.967Z (6 months ago)
- Language: Java
- Size: 712 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://github.com/jauntsdn/rsocket-jvm-interop-examples/actions/workflows/build-ci.yml)
# Message-Streams (RSocket-JVM) / GRPC interop example
This example demonstrates how `Message-Streams` services from [jauntsdn/RSocket-JVM](https://github.com/jauntsdn/rsocket-jvm)
interoperate with each other over multiple transports (tcp, unix sockets, websockets/http2) & with GRPC, http/json over http2. It also demonstrates
how Message-Streams/RPC services may be decoupled from RSocket-JVM runtime (this includes transports, metrics, load estimators/circuit breakers).
`Message-Streams` is very fast GRPC-like & GRPC-compatible services on JVM with rich streaming models.
Each service & its RPC client/server bindings have API of different nature: grpc-stub API(StreamObserver), CompletableFuture,
or flavor of reactive: smallrye-mutiny, rxjava3, reactor-project.
Example application is comprised of 5 `Message-Streams` services (RSocket-JVM runtimes are stripped on this branch),
plus GRPC & http/json clients:
* [Farmer](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/messagestreams-reactor-service/src/main/java/com/jauntsdn/rsocket/trisocket/farm/Main.java) service (Message-Streams-RPC-reactor + TCP transport)
* [Recipes](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/messagestreams-futures-service/src/main/java/com/jauntsdn/rsocket/trisocket/recipes/Main.java) service (Message-Streams-RPC-futures + TCP transport)
* [Roundsman](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/messagestreams-mutiny-service/src/main/java/com/jauntsdn/rsocket/trisocket/roundsman/Main.java) service (Message-Streams-RPC-mutiny + WEBSOCKET-HTTP2 transport)
* [Chef](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/messagestreams-grpc-service/src/main/java/com/jauntsdn/rsocket/trisocket/chef/Main.java) service (Message-Streams-RPC-grpc + UNIX transport)
* [Kitchen](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/messagestreams-rxjava-service/src/main/java/com/jauntsdn/rsocket/trisocket/kitchen/Main.java) service (Message-Streams-RPC-rxjava + GRPC transport)
* [Gourmet](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/grpc-client/src/main/java/com/jauntsdn/rsocket/trisocket/gourmet/Main.java) client (GRPC-java)
* [Supervisor](https://github.com/jauntsdn/rsocket-jvm-interop-examples/blob/feature/oss/http-client/src/main/java/com/jauntsdn/rsocket/trisocket/supervisor/Main.java) client (http/json)

### Build
`./gradlew`
Regenerate RPC client/service stubs (linux, windows(x86) only)
`./gradlew clean build -PgenerateProto=true`